src/hotspot/share/interpreter/bytecodeInterpreter.cpp
changeset 49368 2ed1c37df3a5
parent 49340 4e82736053ae
child 49390 95f0b54a3024
equal deleted inserted replaced
49366:f95ef5511e1f 49368:2ed1c37df3a5
  2587         int i;
  2587         int i;
  2588         for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) {
  2588         for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) {
  2589           if (ki->interface_klass() == iclass) break;
  2589           if (ki->interface_klass() == iclass) break;
  2590         }
  2590         }
  2591         // If the interface isn't found, this class doesn't implement this
  2591         // If the interface isn't found, this class doesn't implement this
  2592         // interface.  The link resolver checks this but only for the first
  2592         // interface. The link resolver checks this but only for the first
  2593         // time this interface is called.
  2593         // time this interface is called.
  2594         if (i == int2->itable_length()) {
  2594         if (i == int2->itable_length()) {
  2595           VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap);
  2595           CALL_VM(InterpreterRuntime::throw_IncompatibleClassChangeErrorVerbose(THREAD, rcvr->klass(), iclass),
       
  2596                   handle_exception);
  2596         }
  2597         }
  2597         int mindex = interface_method->itable_index();
  2598         int mindex = interface_method->itable_index();
  2598 
  2599 
  2599         itableMethodEntry* im = ki->first_method_entry(rcvr->klass());
  2600         itableMethodEntry* im = ki->first_method_entry(rcvr->klass());
  2600         callee = im[mindex].method();
  2601         callee = im[mindex].method();
  2601         if (callee == NULL) {
  2602         if (callee == NULL) {
  2602           VM_JAVA_ERROR(vmSymbols::java_lang_AbstractMethodError(), "", note_no_trap);
  2603           CALL_VM(InterpreterRuntime::throw_AbstractMethodErrorVerbose(THREAD, rcvr->klass(), interface_method),
       
  2604                   handle_exception);
  2603         }
  2605         }
  2604 
  2606 
  2605         // Profile virtual call.
  2607         // Profile virtual call.
  2606         BI_PROFILE_UPDATE_VIRTUALCALL(rcvr->klass());
  2608         BI_PROFILE_UPDATE_VIRTUALCALL(rcvr->klass());
  2607 
  2609