diff -r b51dc8df86e5 -r 59c790074993 src/share/vm/memory/allocation.cpp --- a/src/share/vm/memory/allocation.cpp Wed Nov 28 08:43:26 2012 -0800 +++ b/src/share/vm/memory/allocation.cpp Wed Nov 28 17:50:21 2012 -0500 @@ -66,10 +66,17 @@ } bool MetaspaceObj::is_metadata() const { - // ClassLoaderDataGraph::contains((address)this); has lock inversion problems + // GC Verify checks use this in guarantees. + // TODO: either replace them with is_metaspace_object() or remove them. + // is_metaspace_object() is slower than this test. This test doesn't + // seem very useful for metaspace objects anymore though. return !Universe::heap()->is_in_reserved(this); } +bool MetaspaceObj::is_metaspace_object() const { + return Metaspace::contains((void*)this); +} + void MetaspaceObj::print_address_on(outputStream* st) const { st->print(" {"INTPTR_FORMAT"}", this); }