Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
10147:cc70cbbd422e | 10149:d587a5c30bd8 |
---|---|
234 | 234 |
235 enum { | 235 enum { |
236 _misc_rewritten = 1 << 0, // methods rewritten. | 236 _misc_rewritten = 1 << 0, // methods rewritten. |
237 _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops | 237 _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops |
238 _misc_should_verify_class = 1 << 2, // allow caching of preverification | 238 _misc_should_verify_class = 1 << 2, // allow caching of preverification |
239 _misc_is_anonymous = 1 << 3, // has embedded _inner_classes field | 239 _misc_is_anonymous = 1 << 3, // has embedded _host_klass field |
240 _misc_is_contended = 1 << 4, // marked with contended annotation | 240 _misc_is_contended = 1 << 4, // marked with contended annotation |
241 _misc_has_default_methods = 1 << 5 // class/superclass/implemented interfaces has default methods | 241 _misc_has_default_methods = 1 << 5 // class/superclass/implemented interfaces has default methods |
242 }; | 242 }; |
243 u2 _misc_flags; | 243 u2 _misc_flags; |
244 u2 _minor_version; // minor version number of class file | 244 u2 _minor_version; // minor version number of class file |
932 | 932 |
933 // The constant pool is on stack if any of the methods are executing or | 933 // The constant pool is on stack if any of the methods are executing or |
934 // referenced by handles. | 934 // referenced by handles. |
935 bool on_stack() const { return _constants->on_stack(); } | 935 bool on_stack() const { return _constants->on_stack(); } |
936 | 936 |
937 void release_C_heap_structures(); | 937 // callbacks for actions during class unloading |
938 static void notify_unload_class(InstanceKlass* ik); | |
939 static void release_C_heap_structures(InstanceKlass* ik); | |
938 | 940 |
939 // Parallel Scavenge and Parallel Old | 941 // Parallel Scavenge and Parallel Old |
940 PARALLEL_GC_DECLS | 942 PARALLEL_GC_DECLS |
941 | 943 |
942 // Naming | 944 // Naming |
1020 Klass* array_klass_impl(bool or_null, int n, TRAPS); | 1022 Klass* array_klass_impl(bool or_null, int n, TRAPS); |
1021 | 1023 |
1022 // Returns the array class with this class as element type | 1024 // Returns the array class with this class as element type |
1023 Klass* array_klass_impl(bool or_null, TRAPS); | 1025 Klass* array_klass_impl(bool or_null, TRAPS); |
1024 | 1026 |
1027 // Free CHeap allocated fields. | |
1028 void release_C_heap_structures(); | |
1025 public: | 1029 public: |
1026 // CDS support - remove and restore oops from metadata. Oops are not shared. | 1030 // CDS support - remove and restore oops from metadata. Oops are not shared. |
1027 virtual void remove_unshareable_info(); | 1031 virtual void remove_unshareable_info(); |
1028 virtual void restore_unshareable_info(TRAPS); | 1032 virtual void restore_unshareable_info(TRAPS); |
1029 | 1033 |