src/share/vm/classfile/metadataOnStackMark.cpp

changeset 9184
fbcbfd2753b5
parent 7333
b12a2a9b05ca
child 9203
53eec13fbaa5
equal deleted inserted replaced
9183:f95c67788f18 9184:fbcbfd2753b5
39 NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;) 39 NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;)
40 40
41 // Walk metadata on the stack and mark it so that redefinition doesn't delete 41 // Walk metadata on the stack and mark it so that redefinition doesn't delete
42 // it. Class unloading also walks the previous versions and might try to 42 // it. Class unloading also walks the previous versions and might try to
43 // delete it, so this class is used by class unloading also. 43 // delete it, so this class is used by class unloading also.
44 MetadataOnStackMark::MetadataOnStackMark(bool visit_code_cache) { 44 MetadataOnStackMark::MetadataOnStackMark(bool has_redefined_a_class) {
45 assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); 45 assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
46 assert(_used_buffers == NULL, "sanity check"); 46 assert(_used_buffers == NULL, "sanity check");
47 NOT_PRODUCT(_is_active = true;) 47 NOT_PRODUCT(_is_active = true;)
48 48
49 Threads::metadata_do(Metadata::mark_on_stack); 49 Threads::metadata_do(Metadata::mark_on_stack);
50 if (visit_code_cache) { 50 if (has_redefined_a_class) {
51 CodeCache::alive_nmethods_do(nmethod::mark_on_stack); 51 CodeCache::alive_nmethods_do(nmethod::mark_on_stack);
52 } 52 }
53 CompileBroker::mark_on_stack(); 53 CompileBroker::mark_on_stack();
54 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); 54 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack);
55 ThreadService::metadata_do(Metadata::mark_on_stack); 55 ThreadService::metadata_do(Metadata::mark_on_stack);

mercurial