src/share/vm/oops/methodOop.hpp

Print this page




 289   // exception handler table
 290   bool has_exception_handler() const
 291                              { return constMethod()->has_exception_handler(); }
 292   int exception_table_length() const
 293                              { return constMethod()->exception_table_length(); }
 294   ExceptionTableElement* exception_table_start() const
 295                              { return constMethod()->exception_table_start(); }
 296 
 297   // Finds the first entry point bci of an exception handler for an
 298   // exception of klass ex_klass thrown at throw_bci. A value of NULL
 299   // for ex_klass indicates that the exception klass is not known; in
 300   // this case it matches any constraint class. Returns -1 if the
 301   // exception cannot be handled in this method. The handler
 302   // constraint classes are loaded if necessary. Note that this may
 303   // throw an exception if loading of the constraint classes causes
 304   // an IllegalAccessError (bugid 4307310) or an OutOfMemoryError.
 305   // If an exception is thrown, returns the bci of the
 306   // exception handler which caused the exception to be thrown, which
 307   // is needed for proper retries. See, for example,
 308   // InterpreterRuntime::exception_handler_for_exception.
 309   int fast_exception_handler_bci_for(KlassHandle ex_klass, int throw_bci, TRAPS);
 310 
 311   // method data access
 312   methodDataOop method_data() const              {
 313     return _method_data;
 314   }
 315   void set_method_data(methodDataOop data)       {
 316     oop_store_without_check((oop*)&_method_data, (oop)data);
 317   }
 318 
 319   // invocation counter
 320   InvocationCounter* invocation_counter() { return &_invocation_counter; }
 321   InvocationCounter* backedge_counter()   { return &_backedge_counter; }
 322 
 323 #ifdef TIERED
 324   // We are reusing interpreter_invocation_count as a holder for the previous event count!
 325   // We can do that since interpreter_invocation_count is not used in tiered.
 326   int prev_event_count() const                   { return _interpreter_invocation_count;  }
 327   void set_prev_event_count(int count)           { _interpreter_invocation_count = count; }
 328   jlong prev_time() const                        { return _prev_time; }
 329   void set_prev_time(jlong time)                 { _prev_time = time; }




 289   // exception handler table
 290   bool has_exception_handler() const
 291                              { return constMethod()->has_exception_handler(); }
 292   int exception_table_length() const
 293                              { return constMethod()->exception_table_length(); }
 294   ExceptionTableElement* exception_table_start() const
 295                              { return constMethod()->exception_table_start(); }
 296 
 297   // Finds the first entry point bci of an exception handler for an
 298   // exception of klass ex_klass thrown at throw_bci. A value of NULL
 299   // for ex_klass indicates that the exception klass is not known; in
 300   // this case it matches any constraint class. Returns -1 if the
 301   // exception cannot be handled in this method. The handler
 302   // constraint classes are loaded if necessary. Note that this may
 303   // throw an exception if loading of the constraint classes causes
 304   // an IllegalAccessError (bugid 4307310) or an OutOfMemoryError.
 305   // If an exception is thrown, returns the bci of the
 306   // exception handler which caused the exception to be thrown, which
 307   // is needed for proper retries. See, for example,
 308   // InterpreterRuntime::exception_handler_for_exception.
 309   static int fast_exception_handler_bci_for(methodHandle mh, KlassHandle ex_klass, int throw_bci, TRAPS);
 310 
 311   // method data access
 312   methodDataOop method_data() const              {
 313     return _method_data;
 314   }
 315   void set_method_data(methodDataOop data)       {
 316     oop_store_without_check((oop*)&_method_data, (oop)data);
 317   }
 318 
 319   // invocation counter
 320   InvocationCounter* invocation_counter() { return &_invocation_counter; }
 321   InvocationCounter* backedge_counter()   { return &_backedge_counter; }
 322 
 323 #ifdef TIERED
 324   // We are reusing interpreter_invocation_count as a holder for the previous event count!
 325   // We can do that since interpreter_invocation_count is not used in tiered.
 326   int prev_event_count() const                   { return _interpreter_invocation_count;  }
 327   void set_prev_event_count(int count)           { _interpreter_invocation_count = count; }
 328   jlong prev_time() const                        { return _prev_time; }
 329   void set_prev_time(jlong time)                 { _prev_time = time; }