hotspot/src/share/vm/classfile/verifier.hpp
changeset 17370 59a0620561fa
parent 13728 882756847a04
child 17863 d77007cf03c1
equal deleted inserted replaced
17367:64c84d620e5c 17370:59a0620561fa
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   222   void reset_frames() {
   222   void reset_frames() {
   223     _type.reset_frame();
   223     _type.reset_frame();
   224     _expected.reset_frame();
   224     _expected.reset_frame();
   225   }
   225   }
   226 
   226 
   227   void details(outputStream* ss, Method* method) const;
   227   void details(outputStream* ss, const Method* method) const;
   228 
   228 
   229 #ifdef ASSERT
   229 #ifdef ASSERT
   230   void print_on(outputStream* str) const {
   230   void print_on(outputStream* str) const {
   231     str->print("error_context(%d, %d,", _bci, _fault);
   231     str->print("error_context(%d, %d,", _bci, _fault);
   232     _type.print_on(str);
   232     _type.print_on(str);
   235     str->print(")");
   235     str->print(")");
   236   }
   236   }
   237 #endif
   237 #endif
   238 
   238 
   239  private:
   239  private:
   240   void location_details(outputStream* ss, Method* method) const;
   240   void location_details(outputStream* ss, const Method* method) const;
   241   void reason_details(outputStream* ss) const;
   241   void reason_details(outputStream* ss) const;
   242   void frame_details(outputStream* ss) const;
   242   void frame_details(outputStream* ss) const;
   243   void bytecode_details(outputStream* ss, Method* method) const;
   243   void bytecode_details(outputStream* ss, const Method* method) const;
   244   void handler_details(outputStream* ss, Method* method) const;
   244   void handler_details(outputStream* ss, const Method* method) const;
   245   void stackmap_details(outputStream* ss, Method* method) const;
   245   void stackmap_details(outputStream* ss, const Method* method) const;
   246 };
   246 };
   247 
   247 
   248 // A new instance of this class is created for each class being verified
   248 // A new instance of this class is created for each class being verified
   249 class ClassVerifier : public StackObj {
   249 class ClassVerifier : public StackObj {
   250  private:
   250  private: