Mercurial > hg > truffle
diff src/share/vm/oops/method.hpp @ 7176:59c790074993
8003635: NPG: AsynchGetCallTrace broken by Method* virtual call
Summary: Make metaspace::contains be lock free and used to see if something is in metaspace, also compare Method* with vtbl pointer.
Reviewed-by: dholmes, sspitsyn, dcubed, jmasa
author | coleenp |
---|---|
date | Wed, 28 Nov 2012 17:50:21 -0500 |
parents | 18fb7da42534 |
children | 5505fbbae3d3 |
line wrap: on
line diff
--- a/src/share/vm/oops/method.hpp Wed Nov 28 08:43:26 2012 -0800 +++ b/src/share/vm/oops/method.hpp Wed Nov 28 17:50:21 2012 -0500 @@ -169,7 +169,8 @@ ConstMethod::MethodType method_type, TRAPS); - Method() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } + // CDS and vtbl checking can create an empty Method to get vtbl pointer. + Method(){} // The Method vtable is restored by this call when the Method is in the // shared archive. See patch_klass_vtables() in metaspaceShared.cpp for @@ -812,6 +813,9 @@ const char* internal_name() const { return "{method}"; } + // Check for valid method pointer + bool is_valid_method() const; + // Verify void verify() { verify_on(tty); } void verify_on(outputStream* st);