191
192 uintptr_t JfrSymbolId::regular_klass_name_hash_code(const Klass* k) {
193 assert(k != NULL, "invariant");
194 const Symbol* const sym = k->name();
195 assert(sym != NULL, "invariant");
196 return (uintptr_t)const_cast<Symbol*>(sym)->identity_hash();
197 }
198
199 JfrArtifactSet::JfrArtifactSet(bool class_unload) : _symbol_id(new JfrSymbolId()),
200 _klass_list(NULL),
201 _class_unload(class_unload) {
202 initialize(class_unload);
203 assert(_klass_list != NULL, "invariant");
204 }
205
206 static const size_t initial_class_list_size = 200;
207 void JfrArtifactSet::initialize(bool class_unload) {
208 assert(_symbol_id != NULL, "invariant");
209 _symbol_id->initialize();
210 assert(!_symbol_id->has_entries(), "invariant");
211 _symbol_id->mark(boot_class_loader_name, 0); // pre-load "boot"
212 _class_unload = class_unload;
213 // resource allocation
214 _klass_list = new GrowableArray<const Klass*>(initial_class_list_size, false, mtTracing);
215 }
216
217 JfrArtifactSet::~JfrArtifactSet() {
218 clear();
219 }
220
221 void JfrArtifactSet::clear() {
222 _symbol_id->clear();
223 // _klass_list will be cleared by a ResourceMark
224 }
225
226 traceid JfrArtifactSet::mark_anonymous_klass_name(const Klass* klass) {
227 return _symbol_id->mark_anonymous_klass_name(klass);
228 }
229
230 traceid JfrArtifactSet::mark(const Symbol* sym, uintptr_t hash) {
231 return _symbol_id->mark(sym, hash);
|
191
192 uintptr_t JfrSymbolId::regular_klass_name_hash_code(const Klass* k) {
193 assert(k != NULL, "invariant");
194 const Symbol* const sym = k->name();
195 assert(sym != NULL, "invariant");
196 return (uintptr_t)const_cast<Symbol*>(sym)->identity_hash();
197 }
198
199 JfrArtifactSet::JfrArtifactSet(bool class_unload) : _symbol_id(new JfrSymbolId()),
200 _klass_list(NULL),
201 _class_unload(class_unload) {
202 initialize(class_unload);
203 assert(_klass_list != NULL, "invariant");
204 }
205
206 static const size_t initial_class_list_size = 200;
207 void JfrArtifactSet::initialize(bool class_unload) {
208 assert(_symbol_id != NULL, "invariant");
209 _symbol_id->initialize();
210 assert(!_symbol_id->has_entries(), "invariant");
211 _symbol_id->mark(BOOTSTRAP_LOADER_NAME, 0); // pre-load "boot"
212 _class_unload = class_unload;
213 // resource allocation
214 _klass_list = new GrowableArray<const Klass*>(initial_class_list_size, false, mtTracing);
215 }
216
217 JfrArtifactSet::~JfrArtifactSet() {
218 clear();
219 }
220
221 void JfrArtifactSet::clear() {
222 _symbol_id->clear();
223 // _klass_list will be cleared by a ResourceMark
224 }
225
226 traceid JfrArtifactSet::mark_anonymous_klass_name(const Klass* klass) {
227 return _symbol_id->mark_anonymous_klass_name(klass);
228 }
229
230 traceid JfrArtifactSet::mark(const Symbol* sym, uintptr_t hash) {
231 return _symbol_id->mark(sym, hash);
|