hotspot/src/share/vm/c1/c1_Runtime1.cpp
changeset 36345 72e6d0ac646b
parent 35606 d873b64009cc
child 36350 29d8bb1668f5
equal deleted inserted replaced
36344:5b16931563ac 36345:72e6d0ac646b
  1500   nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
  1500   nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
  1501   assert (nm != NULL, "no more nmethod?");
  1501   assert (nm != NULL, "no more nmethod?");
  1502   nm->make_not_entrant();
  1502   nm->make_not_entrant();
  1503 
  1503 
  1504   methodHandle m(nm->method());
  1504   methodHandle m(nm->method());
  1505   MethodData* mdo = m->method_data();
  1505   if (ProfileInterpreter) {
  1506 
  1506     MethodData* mdo = m->method_data();
  1507   if (mdo == NULL && !HAS_PENDING_EXCEPTION) {
  1507 
  1508     // Build an MDO.  Ignore errors like OutOfMemory;
  1508     if (mdo == NULL && !HAS_PENDING_EXCEPTION) {
  1509     // that simply means we won't have an MDO to update.
  1509       // Build an MDO.  Ignore errors like OutOfMemory;
  1510     Method::build_interpreter_method_data(m, THREAD);
  1510       // that simply means we won't have an MDO to update.
  1511     if (HAS_PENDING_EXCEPTION) {
  1511       Method::build_interpreter_method_data(m, THREAD);
  1512       assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOM error here");
  1512       if (HAS_PENDING_EXCEPTION) {
  1513       CLEAR_PENDING_EXCEPTION;
  1513         assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOM error here");
  1514     }
  1514         CLEAR_PENDING_EXCEPTION;
  1515     mdo = m->method_data();
  1515       }
  1516   }
  1516       mdo = m->method_data();
  1517 
  1517     }
  1518   if (mdo != NULL) {
  1518 
  1519     mdo->inc_trap_count(Deoptimization::Reason_none);
  1519     if (mdo != NULL) {
       
  1520       mdo->inc_trap_count(Deoptimization::Reason_none);
       
  1521     }
  1520   }
  1522   }
  1521 
  1523 
  1522   if (TracePredicateFailedTraps) {
  1524   if (TracePredicateFailedTraps) {
  1523     stringStream ss1, ss2;
  1525     stringStream ss1, ss2;
  1524     vframeStream vfst(thread);
  1526     vframeStream vfst(thread);