Mercurial > hg > truffle
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 |