src/share/vm/classfile/metadataOnStackMark.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8055008_3 Cdiff src/share/vm/classfile/metadataOnStackMark.cpp

src/share/vm/classfile/metadataOnStackMark.cpp

Print this page

        

*** 39,57 **** NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;) // Walk metadata on the stack and mark it so that redefinition doesn't delete // it. Class unloading also walks the previous versions and might try to // delete it, so this class is used by class unloading also. ! MetadataOnStackMark::MetadataOnStackMark() { assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); NOT_PRODUCT(_is_active = true;) if (_marked_objects == NULL) { _marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true); } Threads::metadata_do(Metadata::mark_on_stack); ! if (JvmtiExport::has_redefined_a_class()) { CodeCache::alive_nmethods_do(nmethod::mark_on_stack); } CompileBroker::mark_on_stack(); JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); ThreadService::metadata_do(Metadata::mark_on_stack); --- 39,57 ---- NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;) // Walk metadata on the stack and mark it so that redefinition doesn't delete // it. Class unloading also walks the previous versions and might try to // delete it, so this class is used by class unloading also. ! MetadataOnStackMark::MetadataOnStackMark(bool has_redefined_a_class) { assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); NOT_PRODUCT(_is_active = true;) if (_marked_objects == NULL) { _marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true); } Threads::metadata_do(Metadata::mark_on_stack); ! if (has_redefined_a_class) { CodeCache::alive_nmethods_do(nmethod::mark_on_stack); } CompileBroker::mark_on_stack(); JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); ThreadService::metadata_do(Metadata::mark_on_stack);
src/share/vm/classfile/metadataOnStackMark.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File