• Home
  • Raw
  • Download

Lines Matching refs:self

59 static bool dvmPushInterpFrame(Thread* self, const Method* method)  in dvmPushInterpFrame()  argument
73 if (self->curFrame != NULL) in dvmPushInterpFrame()
74 stackPtr = (u1*) SAVEAREA_FROM_FP(self->curFrame); in dvmPushInterpFrame()
76 stackPtr = self->interpStackStart; in dvmPushInterpFrame()
78 if (stackPtr - stackReq < self->interpStackEnd) { in dvmPushInterpFrame()
82 stackReq, self->interpStackStart, self->curFrame, in dvmPushInterpFrame()
83 self->interpStackSize, method->clazz->descriptor, method->name); in dvmPushInterpFrame()
84 dvmHandleStackOverflow(self, method); in dvmPushInterpFrame()
85 assert(dvmCheckException(self)); in dvmPushInterpFrame()
103 breakSaveBlock->prevSave = FP_FROM_SAVEAREA(self->curFrame); in dvmPushInterpFrame()
107 breakSaveBlock->prevFrame = self->curFrame; in dvmPushInterpFrame()
117 self->curFrame, FP_FROM_SAVEAREA(saveBlock), in dvmPushInterpFrame()
118 (u1*)self->curFrame - (u1*)FP_FROM_SAVEAREA(saveBlock)); in dvmPushInterpFrame()
120 self->curFrame = FP_FROM_SAVEAREA(saveBlock); in dvmPushInterpFrame()
134 bool dvmPushJNIFrame(Thread* self, const Method* method) in dvmPushJNIFrame() argument
146 if (self->curFrame != NULL) in dvmPushJNIFrame()
147 stackPtr = (u1*) SAVEAREA_FROM_FP(self->curFrame); in dvmPushJNIFrame()
149 stackPtr = self->interpStackStart; in dvmPushJNIFrame()
151 if (stackPtr - stackReq < self->interpStackEnd) { in dvmPushJNIFrame()
155 stackReq, self->interpStackStart, self->curFrame, in dvmPushJNIFrame()
156 self->interpStackSize, method->name); in dvmPushJNIFrame()
157 dvmHandleStackOverflow(self, method); in dvmPushJNIFrame()
158 assert(dvmCheckException(self)); in dvmPushJNIFrame()
177 if (self->curFrame == NULL) in dvmPushJNIFrame()
180 breakSaveBlock->prevSave = FP_FROM_SAVEAREA(self->curFrame); in dvmPushJNIFrame()
184 breakSaveBlock->prevFrame = self->curFrame; in dvmPushJNIFrame()
191 saveBlock->xtra.localRefCookie = self->jniLocalRefTable.segmentState.all; in dvmPushJNIFrame()
193 saveBlock->xtra.localRefCookie = self->jniLocalRefTable.nextEntry; in dvmPushJNIFrame()
198 self->curFrame, FP_FROM_SAVEAREA(saveBlock), in dvmPushJNIFrame()
199 (u1*)self->curFrame - (u1*)FP_FROM_SAVEAREA(saveBlock)); in dvmPushJNIFrame()
201 self->curFrame = FP_FROM_SAVEAREA(saveBlock); in dvmPushJNIFrame()
212 bool dvmPushLocalFrame(Thread* self, const Method* method) in dvmPushLocalFrame() argument
222 assert(self->curFrame != NULL); in dvmPushLocalFrame()
223 stackPtr = (u1*) SAVEAREA_FROM_FP(self->curFrame); in dvmPushLocalFrame()
225 if (stackPtr - stackReq < self->interpStackEnd) { in dvmPushLocalFrame()
229 stackReq, self->interpStackStart, self->curFrame, in dvmPushLocalFrame()
230 self->interpStackSize, method->name); in dvmPushLocalFrame()
231 dvmHandleStackOverflow(self, method); in dvmPushLocalFrame()
232 assert(dvmCheckException(self)); in dvmPushLocalFrame()
248 saveBlock->prevSave = FP_FROM_SAVEAREA(self->curFrame); in dvmPushLocalFrame()
251 saveBlock->prevFrame = self->curFrame; in dvmPushLocalFrame()
254 saveBlock->xtra.localRefCookie = self->jniLocalRefTable.segmentState.all; in dvmPushLocalFrame()
256 saveBlock->xtra.localRefCookie = self->jniLocalRefTable.nextEntry; in dvmPushLocalFrame()
261 self->curFrame, FP_FROM_SAVEAREA(saveBlock), in dvmPushLocalFrame()
262 (u1*)self->curFrame - (u1*)FP_FROM_SAVEAREA(saveBlock)); in dvmPushLocalFrame()
264 self->curFrame = FP_FROM_SAVEAREA(saveBlock); in dvmPushLocalFrame()
275 bool dvmPopLocalFrame(Thread* self) in dvmPopLocalFrame() argument
277 StackSaveArea* saveBlock = SAVEAREA_FROM_FP(self->curFrame); in dvmPopLocalFrame()
279 assert(!dvmIsBreakFrame(self->curFrame)); in dvmPopLocalFrame()
294 dvmPopJniLocals(self, saveBlock); in dvmPopLocalFrame()
295 self->curFrame = saveBlock->prevFrame; in dvmPopLocalFrame()
309 static bool dvmPopFrame(Thread* self) in dvmPopFrame() argument
313 if (self->curFrame == NULL) in dvmPopFrame()
316 saveBlock = SAVEAREA_FROM_FP(self->curFrame); in dvmPopFrame()
317 assert(!dvmIsBreakFrame(self->curFrame)); in dvmPopFrame()
336 dvmPopJniLocals(self, saveBlock); in dvmPopFrame()
348 self->curFrame, saveBlock->prevFrame); in dvmPopFrame()
350 self->curFrame = saveBlock->prevFrame; in dvmPopFrame()
359 static ClassObject* callPrep(Thread* self, const Method* method, Object* obj, in callPrep() argument
365 if (self->status != THREAD_RUNNING) { in callPrep()
367 self->threadId, self->status, in callPrep()
372 assert(self != NULL); in callPrep()
382 LOGVV("thread=%d native code calling %s.%s %s\n", self->threadId, in callPrep()
389 if (!dvmCheckMethodAccess(dvmGetCaller2Class(self->curFrame), in callPrep()
407 if (!dvmPushJNIFrame(self, method)) { in callPrep()
408 assert(dvmCheckException(self)); in callPrep()
413 if (!dvmPushInterpFrame(self, method)) { in callPrep()
414 assert(dvmCheckException(self)); in callPrep()
429 void dvmCallMethod(Thread* self, const Method* method, Object* obj, in dvmCallMethod() argument
434 dvmCallMethodV(self, method, obj, false, pResult, args); in dvmCallMethod()
447 void dvmCallMethodV(Thread* self, const Method* method, Object* obj, in dvmCallMethodV() argument
455 clazz = callPrep(self, method, obj, false); in dvmCallMethodV()
460 ins = ((u4*)self->curFrame) + (method->registersSize - method->insSize); in dvmCallMethodV()
473 JNIEnv* env = self->jniEnv; in dvmCallMethodV()
521 TRACE_METHOD_ENTER(self, method); in dvmCallMethodV()
526 (*method->nativeFunc)(self->curFrame, pResult, method, self); in dvmCallMethodV()
527 TRACE_METHOD_EXIT(self, method); in dvmCallMethodV()
529 dvmInterpret(self, method, pResult); in dvmCallMethodV()
535 dvmPopFrame(self); in dvmCallMethodV()
551 void dvmCallMethodA(Thread* self, const Method* method, Object* obj, in dvmCallMethodA() argument
559 clazz = callPrep(self, method, obj, false); in dvmCallMethodA()
564 ins = ((u4*)self->curFrame) + (method->registersSize - method->insSize); in dvmCallMethodA()
573 JNIEnv* env = self->jniEnv; in dvmCallMethodA()
625 TRACE_METHOD_ENTER(self, method); in dvmCallMethodA()
630 (*method->nativeFunc)(self->curFrame, pResult, method, self); in dvmCallMethodA()
631 TRACE_METHOD_EXIT(self, method); in dvmCallMethodA()
633 dvmInterpret(self, method, pResult); in dvmCallMethodA()
637 dvmPopFrame(self); in dvmCallMethodA()
657 Thread* self = dvmThreadSelf(); in dvmInvokeMethod() local
676 clazz = callPrep(self, method, obj, !noAccessCheck); in dvmInvokeMethod()
682 ins = ((s4*)self->curFrame) + (method->registersSize - method->insSize); in dvmInvokeMethod()
714 dvmPopFrame(self); // throw wants to pull PC out of stack in dvmInvokeMethod()
734 TRACE_METHOD_ENTER(self, method); in dvmInvokeMethod()
739 (*method->nativeFunc)(self->curFrame, &retval, method, self); in dvmInvokeMethod()
740 TRACE_METHOD_EXIT(self, method); in dvmInvokeMethod()
742 dvmInterpret(self, method, &retval); in dvmInvokeMethod()
749 dvmPopFrame(self); in dvmInvokeMethod()
760 if (dvmCheckException(self)) { in dvmInvokeMethod()
778 dvmPopFrame(self); in dvmInvokeMethod()
1017 void dvmHandleStackOverflow(Thread* self, const Method* method) in dvmHandleStackOverflow() argument
1022 if (self->stackOverflowed) { in dvmHandleStackOverflow()
1027 self->threadId); in dvmHandleStackOverflow()
1028 dvmDumpThread(self, false); in dvmHandleStackOverflow()
1034 self->threadId, in dvmHandleStackOverflow()
1036 StackSaveArea* saveArea = SAVEAREA_FROM_FP(self->curFrame); in dvmHandleStackOverflow()
1040 saveArea, (u1*) saveArea - self->interpStackEnd); in dvmHandleStackOverflow()
1041 LOGI(" expanding stack end (%p to %p)\n", self->interpStackEnd, in dvmHandleStackOverflow()
1042 self->interpStackStart - self->interpStackSize); in dvmHandleStackOverflow()
1044 self->interpStackEnd = self->interpStackStart - self->interpStackSize; in dvmHandleStackOverflow()
1045 self->stackOverflowed = true; in dvmHandleStackOverflow()
1053 Object* excep = dvmGetException(self); in dvmHandleStackOverflow()
1056 dvmClearException(self); in dvmHandleStackOverflow()
1066 void dvmCleanupStackOverflow(Thread* self, const Object* exception) in dvmCleanupStackOverflow() argument
1070 assert(self->stackOverflowed); in dvmCleanupStackOverflow()
1077 newStackEnd = (self->interpStackStart - self->interpStackSize) in dvmCleanupStackOverflow()
1079 if ((u1*)self->curFrame <= newStackEnd) { in dvmCleanupStackOverflow()
1081 self->interpStackEnd, self->curFrame); in dvmCleanupStackOverflow()
1082 dvmDumpThread(self, false); in dvmCleanupStackOverflow()
1086 self->interpStackEnd = newStackEnd; in dvmCleanupStackOverflow()
1087 self->stackOverflowed = false; in dvmCleanupStackOverflow()
1089 LOGI("Shrank stack (to %p, curFrame is %p)\n", self->interpStackEnd, in dvmCleanupStackOverflow()
1090 self->curFrame); in dvmCleanupStackOverflow()