hotspot/src/share/vm/classfile/verifier.hpp
changeset 5693 3015c564fcbc
parent 3820 0a8fbbe180db
child 5702 201c5cde25bb
--- a/hotspot/src/share/vm/classfile/verifier.hpp	Tue May 25 13:18:49 2010 -0700
+++ b/hotspot/src/share/vm/classfile/verifier.hpp	Thu May 27 09:54:07 2010 -0700
@@ -158,6 +158,16 @@
   methodHandle        _method; // current method being verified
   VerificationType    _this_type; // the verification type of the current class
 
+  // Some recursive calls from the verifier to the name resolver
+  // can cause the current class to be re-verified and rewritten.
+  // If this happens, the original verification should not continue,
+  // because constant pool indexes will have changed.
+  // The rewriter is preceded by the verifier.  If the verifier throws
+  // an error, rewriting is prevented.  Also, rewriting always precedes
+  // bytecode execution or compilation.  Thus, is_rewritten implies
+  // that a class has been verified and prepared for execution.
+  bool was_recursively_verified() { return _klass->is_rewritten(); }
+
  public:
   enum {
     BYTECODE_OFFSET = 1,