mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8011803: release_C_heap_structures is never called for anonymous classes
Call this function from the ClassLoaderData destructor instead of the system dictionary walk. Reviewed-by: stefank, mgerdin
This commit is contained in:
parent
d567edd809
commit
cd7d504d54
4 changed files with 35 additions and 15 deletions
|
@ -236,7 +236,7 @@ class InstanceKlass: public Klass {
|
|||
_misc_rewritten = 1 << 0, // methods rewritten.
|
||||
_misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops
|
||||
_misc_should_verify_class = 1 << 2, // allow caching of preverification
|
||||
_misc_is_anonymous = 1 << 3, // has embedded _inner_classes field
|
||||
_misc_is_anonymous = 1 << 3, // has embedded _host_klass field
|
||||
_misc_is_contended = 1 << 4, // marked with contended annotation
|
||||
_misc_has_default_methods = 1 << 5 // class/superclass/implemented interfaces has default methods
|
||||
};
|
||||
|
@ -934,7 +934,9 @@ class InstanceKlass: public Klass {
|
|||
// referenced by handles.
|
||||
bool on_stack() const { return _constants->on_stack(); }
|
||||
|
||||
void release_C_heap_structures();
|
||||
// callbacks for actions during class unloading
|
||||
static void notify_unload_class(InstanceKlass* ik);
|
||||
static void release_C_heap_structures(InstanceKlass* ik);
|
||||
|
||||
// Parallel Scavenge and Parallel Old
|
||||
PARALLEL_GC_DECLS
|
||||
|
@ -1022,6 +1024,8 @@ private:
|
|||
// Returns the array class with this class as element type
|
||||
Klass* array_klass_impl(bool or_null, TRAPS);
|
||||
|
||||
// Free CHeap allocated fields.
|
||||
void release_C_heap_structures();
|
||||
public:
|
||||
// CDS support - remove and restore oops from metadata. Oops are not shared.
|
||||
virtual void remove_unshareable_info();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue