347 inline unsigned int identity_hash() const { return (unsigned int)(((intptr_t)this) >> 3); }
348
349 // Used when tracing from klasses.
350 void oops_do(OopClosure* f, KlassClosure* klass_closure, bool must_claim);
351
352 void classes_do(KlassClosure* klass_closure);
353 Klass* klasses() { return _klasses; }
354
355 JNIMethodBlock* jmethod_ids() const { return _jmethod_ids; }
356 void set_jmethod_ids(JNIMethodBlock* new_block) { _jmethod_ids = new_block; }
357
358 void print() { print_on(tty); }
359 void print_on(outputStream* out) const;
360 void print_value() { print_value_on(tty); }
361 void print_value_on(outputStream* out) const;
362 void dump(outputStream * const out) PRODUCT_RETURN;
363 void verify();
364 const char* loader_name();
365
366 OopHandle add_handle(Handle h);
367 void init_handle_locked(OopHandle& pd, Handle h); // used for concurrent access to ModuleEntry::_pd field
368 void add_class(Klass* k, bool publicize = true);
369 void remove_class(Klass* k);
370 bool contains_klass(Klass* k);
371 void record_dependency(const Klass* to, TRAPS);
372 void init_dependencies(TRAPS);
373 PackageEntryTable* packages() { return _packages; }
374 ModuleEntry* unnamed_module() { return _unnamed_module; }
375 ModuleEntryTable* modules();
376 bool modules_defined() { return (_modules != NULL); }
377
378 // Loaded class dictionary
379 Dictionary* dictionary() const { return _dictionary; }
380
381 void add_to_deallocate_list(Metadata* m);
382
383 static ClassLoaderData* class_loader_data(oop loader);
384 static ClassLoaderData* class_loader_data_or_null(oop loader);
385 static ClassLoaderData* anonymous_class_loader_data(oop loader, TRAPS);
386 static void print_loader(ClassLoaderData *loader_data, outputStream *out);
|
347 inline unsigned int identity_hash() const { return (unsigned int)(((intptr_t)this) >> 3); }
348
349 // Used when tracing from klasses.
350 void oops_do(OopClosure* f, KlassClosure* klass_closure, bool must_claim);
351
352 void classes_do(KlassClosure* klass_closure);
353 Klass* klasses() { return _klasses; }
354
355 JNIMethodBlock* jmethod_ids() const { return _jmethod_ids; }
356 void set_jmethod_ids(JNIMethodBlock* new_block) { _jmethod_ids = new_block; }
357
358 void print() { print_on(tty); }
359 void print_on(outputStream* out) const;
360 void print_value() { print_value_on(tty); }
361 void print_value_on(outputStream* out) const;
362 void dump(outputStream * const out) PRODUCT_RETURN;
363 void verify();
364 const char* loader_name();
365
366 OopHandle add_handle(Handle h);
367 void remove_handle(OopHandle h);
368 void init_handle_locked(OopHandle& pd, Handle h); // used for concurrent access to ModuleEntry::_pd field
369 void add_class(Klass* k, bool publicize = true);
370 void remove_class(Klass* k);
371 bool contains_klass(Klass* k);
372 void record_dependency(const Klass* to, TRAPS);
373 void init_dependencies(TRAPS);
374 PackageEntryTable* packages() { return _packages; }
375 ModuleEntry* unnamed_module() { return _unnamed_module; }
376 ModuleEntryTable* modules();
377 bool modules_defined() { return (_modules != NULL); }
378
379 // Loaded class dictionary
380 Dictionary* dictionary() const { return _dictionary; }
381
382 void add_to_deallocate_list(Metadata* m);
383
384 static ClassLoaderData* class_loader_data(oop loader);
385 static ClassLoaderData* class_loader_data_or_null(oop loader);
386 static ClassLoaderData* anonymous_class_loader_data(oop loader, TRAPS);
387 static void print_loader(ClassLoaderData *loader_data, outputStream *out);
|