comparison src/share/vm/classfile/metadataOnStackMark.cpp @ 13391:0b9ea9a72436

8027630: SIGSEGV in const char*Klass::external_name() Reviewed-by: coleenp, sspitsyn, mgronlun
author sla
date Mon, 18 Nov 2013 10:20:13 +0100
parents 910026b800b8
children 2c6ef90f030a
comparison
equal deleted inserted replaced
13390:d61a1a166f44 13391:0b9ea9a72436
28 #include "compiler/compileBroker.hpp" 28 #include "compiler/compileBroker.hpp"
29 #include "oops/metadata.hpp" 29 #include "oops/metadata.hpp"
30 #include "prims/jvmtiImpl.hpp" 30 #include "prims/jvmtiImpl.hpp"
31 #include "runtime/synchronizer.hpp" 31 #include "runtime/synchronizer.hpp"
32 #include "runtime/thread.hpp" 32 #include "runtime/thread.hpp"
33 #include "services/threadService.hpp"
33 #include "utilities/growableArray.hpp" 34 #include "utilities/growableArray.hpp"
34 35
35 36
36 // Keep track of marked on-stack metadata so it can be cleared. 37 // Keep track of marked on-stack metadata so it can be cleared.
37 GrowableArray<Metadata*>* _marked_objects = NULL; 38 GrowableArray<Metadata*>* _marked_objects = NULL;
48 } 49 }
49 Threads::metadata_do(Metadata::mark_on_stack); 50 Threads::metadata_do(Metadata::mark_on_stack);
50 CodeCache::alive_nmethods_do(nmethod::mark_on_stack); 51 CodeCache::alive_nmethods_do(nmethod::mark_on_stack);
51 CompileBroker::mark_on_stack(); 52 CompileBroker::mark_on_stack();
52 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); 53 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack);
54 ThreadService::metadata_do(Metadata::mark_on_stack);
53 } 55 }
54 56
55 MetadataOnStackMark::~MetadataOnStackMark() { 57 MetadataOnStackMark::~MetadataOnStackMark() {
56 assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); 58 assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
57 // Unmark everything that was marked. Can't do the same walk because 59 // Unmark everything that was marked. Can't do the same walk because