hotspot/src/share/vm/runtime/sharedRuntime.cpp
changeset 2136 c55428da3cec
parent 1618 2d86b9b84aa5
child 2138 a88fa6fb3834
equal deleted inserted replaced
2135:f82c3012ec86 2136:c55428da3cec
   392 
   392 
   393 void SharedRuntime::throw_and_post_jvmti_exception(JavaThread *thread, symbolOop name, const char *message) {
   393 void SharedRuntime::throw_and_post_jvmti_exception(JavaThread *thread, symbolOop name, const char *message) {
   394   Handle h_exception = Exceptions::new_exception(thread, name, message);
   394   Handle h_exception = Exceptions::new_exception(thread, name, message);
   395   throw_and_post_jvmti_exception(thread, h_exception);
   395   throw_and_post_jvmti_exception(thread, h_exception);
   396 }
   396 }
       
   397 
       
   398 // The interpreter code to call this tracing function is only
       
   399 // called/generated when TraceRedefineClasses has the right bits
       
   400 // set. Since obsolete methods are never compiled, we don't have
       
   401 // to modify the compilers to generate calls to this function.
       
   402 //
       
   403 JRT_LEAF(int, SharedRuntime::rc_trace_method_entry(
       
   404     JavaThread* thread, methodOopDesc* method))
       
   405   assert(RC_TRACE_IN_RANGE(0x00001000, 0x00002000), "wrong call");
       
   406 
       
   407   if (method->is_obsolete()) {
       
   408     // We are calling an obsolete method, but this is not necessarily
       
   409     // an error. Our method could have been redefined just after we
       
   410     // fetched the methodOop from the constant pool.
       
   411 
       
   412     // RC_TRACE macro has an embedded ResourceMark
       
   413     RC_TRACE_WITH_THREAD(0x00001000, thread,
       
   414                          ("calling obsolete method '%s'",
       
   415                           method->name_and_sig_as_C_string()));
       
   416     if (RC_TRACE_ENABLED(0x00002000)) {
       
   417       // this option is provided to debug calls to obsolete methods
       
   418       guarantee(false, "faulting at call to an obsolete method.");
       
   419     }
       
   420   }
       
   421   return 0;
       
   422 JRT_END
   397 
   423 
   398 // ret_pc points into caller; we are returning caller's exception handler
   424 // ret_pc points into caller; we are returning caller's exception handler
   399 // for given exception
   425 // for given exception
   400 address SharedRuntime::compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
   426 address SharedRuntime::compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
   401                                                     bool force_unwind, bool top_frame_only) {
   427                                                     bool force_unwind, bool top_frame_only) {