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