hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
changeset 2570 ecc7862946d4
parent 1 489c9b5090e2
child 3261 c7d5aae8d3f7
equal deleted inserted replaced
2569:9e8daec25638 2570:ecc7862946d4
   657       case Bytecodes::_getfield        :  // fall through
   657       case Bytecodes::_getfield        :  // fall through
   658       case Bytecodes::_putfield        :  // fall through
   658       case Bytecodes::_putfield        :  // fall through
   659       case Bytecodes::_invokevirtual   :  // fall through
   659       case Bytecodes::_invokevirtual   :  // fall through
   660       case Bytecodes::_invokespecial   :  // fall through
   660       case Bytecodes::_invokespecial   :  // fall through
   661       case Bytecodes::_invokestatic    :  // fall through
   661       case Bytecodes::_invokestatic    :  // fall through
       
   662       case Bytecodes::_invokedynamic   :  // fall through
   662       case Bytecodes::_invokeinterface :
   663       case Bytecodes::_invokeinterface :
   663         assert(len == 3 || (code == Bytecodes::_invokeinterface && len ==5),
   664         assert(len == 3 || (code == Bytecodes::_invokeinterface && len ==5),
   664                "sanity check");
   665                "sanity check");
       
   666         int cpci = Bytes::get_native_u2(bcp+1);
       
   667         bool is_invokedynamic = (EnableInvokeDynamic && code == Bytecodes::_invokedynamic);
       
   668         if (is_invokedynamic)
       
   669           cpci = Bytes::get_native_u4(bcp+1);
   665         // cache cannot be pre-fetched since some classes won't have it yet
   670         // cache cannot be pre-fetched since some classes won't have it yet
   666         ConstantPoolCacheEntry* entry =
   671         ConstantPoolCacheEntry* entry =
   667           mh->constants()->cache()->entry_at(Bytes::get_native_u2(bcp+1));
   672           mh->constants()->cache()->main_entry_at(cpci);
   668         int i = entry->constant_pool_index();
   673         int i = entry->constant_pool_index();
   669         assert(i < mh->constants()->length(), "sanity check");
   674         assert(i < mh->constants()->length(), "sanity check");
   670         Bytes::put_Java_u2((address)(p+1), (u2)i);     // java byte ordering
   675         Bytes::put_Java_u2((address)(p+1), (u2)i);     // java byte ordering
       
   676         if (is_invokedynamic)  *(p+3) = *(p+4) = 0;
   671         break;
   677         break;
   672       }
   678       }
   673     }
   679     }
   674 
   680 
   675     p += len;
   681     p += len;