src/share/vm/classfile/verifier.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File bug_jdk8026065_1 Sdiff src/share/vm/classfile

src/share/vm/classfile/verifier.hpp

Print this page




 328   void verify_iinc  (u2 index, StackMapFrame* current_frame, TRAPS);
 329 
 330   bool name_in_supers(Symbol* ref_name, instanceKlassHandle current);
 331 
 332   VerificationType object_type() const;
 333 
 334   instanceKlassHandle _klass;  // the class being verified
 335   methodHandle        _method; // current method being verified
 336   VerificationType    _this_type; // the verification type of the current class
 337 
 338   // Some recursive calls from the verifier to the name resolver
 339   // can cause the current class to be re-verified and rewritten.
 340   // If this happens, the original verification should not continue,
 341   // because constant pool indexes will have changed.
 342   // The rewriter is preceded by the verifier.  If the verifier throws
 343   // an error, rewriting is prevented.  Also, rewriting always precedes
 344   // bytecode execution or compilation.  Thus, is_rewritten implies
 345   // that a class has been verified and prepared for execution.
 346   bool was_recursively_verified() { return _klass->is_rewritten(); }
 347 



 348  public:
 349   enum {
 350     BYTECODE_OFFSET = 1,
 351     NEW_OFFSET = 2
 352   };
 353 
 354   // constructor
 355   ClassVerifier(instanceKlassHandle klass, TRAPS);
 356 
 357   // destructor
 358   ~ClassVerifier();
 359 
 360   Thread* thread()             { return _thread; }
 361   methodHandle method()        { return _method; }
 362   instanceKlassHandle current_class() const { return _klass; }
 363   VerificationType current_type() const { return _this_type; }
 364 
 365   // Verifies the class.  If a verify or class file format error occurs,
 366   // the '_exception_name' symbols will set to the exception name and
 367   // the message_buffer will be filled in with the exception message.




 328   void verify_iinc  (u2 index, StackMapFrame* current_frame, TRAPS);
 329 
 330   bool name_in_supers(Symbol* ref_name, instanceKlassHandle current);
 331 
 332   VerificationType object_type() const;
 333 
 334   instanceKlassHandle _klass;  // the class being verified
 335   methodHandle        _method; // current method being verified
 336   VerificationType    _this_type; // the verification type of the current class
 337 
 338   // Some recursive calls from the verifier to the name resolver
 339   // can cause the current class to be re-verified and rewritten.
 340   // If this happens, the original verification should not continue,
 341   // because constant pool indexes will have changed.
 342   // The rewriter is preceded by the verifier.  If the verifier throws
 343   // an error, rewriting is prevented.  Also, rewriting always precedes
 344   // bytecode execution or compilation.  Thus, is_rewritten implies
 345   // that a class has been verified and prepared for execution.
 346   bool was_recursively_verified() { return _klass->is_rewritten(); }
 347 
 348   bool is_same_or_direct_interface(instanceKlassHandle klass,
 349     VerificationType klass_type, VerificationType ref_class_type);
 350 
 351  public:
 352   enum {
 353     BYTECODE_OFFSET = 1,
 354     NEW_OFFSET = 2
 355   };
 356 
 357   // constructor
 358   ClassVerifier(instanceKlassHandle klass, TRAPS);
 359 
 360   // destructor
 361   ~ClassVerifier();
 362 
 363   Thread* thread()             { return _thread; }
 364   methodHandle method()        { return _method; }
 365   instanceKlassHandle current_class() const { return _klass; }
 366   VerificationType current_type() const { return _this_type; }
 367 
 368   // Verifies the class.  If a verify or class file format error occurs,
 369   // the '_exception_name' symbols will set to the exception name and
 370   // the message_buffer will be filled in with the exception message.


src/share/vm/classfile/verifier.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File