diff src/share/vm/oops/constantPool.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 f6b0eb4e44cf d8ce2825b193
line wrap: on
line diff
--- a/src/share/vm/oops/constantPool.hpp	Wed Sep 05 10:18:37 2012 -0700
+++ b/src/share/vm/oops/constantPool.hpp	Wed Sep 05 20:08:08 2012 -0400
@@ -643,6 +643,11 @@
   void remove_unshareable_info();
   void restore_unshareable_info(TRAPS);
   bool resolve_class_constants(TRAPS);
+  // The ConstantPool vtable is restored by this call when the ConstantPool 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_constantPool(), "vtable restored by this call"); }
 
  private:
   enum { _no_index_sentinel = -1, _possible_index_sentinel = -2 };