Mercurial > hg > truffle
diff src/share/vm/oops/method.hpp @ 6733:fa6e618671d7
7195867: NPG: SAJDI tests fail with sun.jvm.hotspot.types.WrongTypeException: No suitable match for type
Summary: Need to restore the vtable in metadata when we restore the type from the shared archive.
Reviewed-by: acorn, jcoomes, jmasa, jrose
author | coleenp |
---|---|
date | Wed, 05 Sep 2012 20:08:08 -0400 |
parents | da91efe96a93 |
children | 9191895df19d |
line wrap: on
line diff
--- a/src/share/vm/oops/method.hpp Wed Sep 05 10:18:37 2012 -0700 +++ b/src/share/vm/oops/method.hpp Wed Sep 05 20:08:08 2012 -0400 @@ -168,9 +168,16 @@ TRAPS); Method() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } + + // The Method vtable is restored by this call when the Method is in the + // shared archive. See patch_klass_vtables() in metaspaceShared.cpp for + // all the gory details. SA, dtrace and pstack helpers distinguish metadata + // by their vtable. + void restore_vtable() { guarantee(is_method(), "vtable restored by this call"); } bool is_method() const volatile { return true; } // accessors for instance variables + ConstMethod* constMethod() const { return _constMethod; } void set_constMethod(ConstMethod* xconst) { _constMethod = xconst; }