Mercurial > hg > truffle
diff src/share/vm/oops/instanceKlass.hpp @ 10149:d587a5c30bd8
8011803: release_C_heap_structures is never called for anonymous classes.
Summary: Call this function from the ClassLoaderData destructor instead of the system dictionary walk.
Reviewed-by: stefank, mgerdin
author | coleenp |
---|---|
date | Wed, 24 Apr 2013 16:19:35 -0400 |
parents | 6337ca4dcad8 |
children | c115fac239eb |
line wrap: on
line diff
--- a/src/share/vm/oops/instanceKlass.hpp Wed Apr 24 09:00:04 2013 -0400 +++ b/src/share/vm/oops/instanceKlass.hpp Wed Apr 24 16:19:35 2013 -0400 @@ -236,7 +236,7 @@ _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 @@ // 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 @@ // 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();