// Never throws. Does not call Java code. Can not yield a GC. May join a GC. extern "C" word_t j3StartJNI(uint32* localReferencesNumber, uint32** oldLocalReferencesNumber, vmkit::KnownFrame* Frame) { JavaThread* th = JavaThread::get(); *oldLocalReferencesNumber = th->currentAddedReferences; th->currentAddedReferences = localReferencesNumber; th->startJNI(); th->startUnknownFrame(*Frame); th->enterUncooperativeCode(); assert(th->getLastSP() == th->lastKnownFrame->currentFP); return Frame->currentFP; }