1 HANDLE_OPCODE(OP_INVOKE_OBJECT_INIT_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 { 3 Object* obj; 4 5 vsrc1 = FETCH(2); /* reg number of "this" pointer */ 6 obj = GET_REGISTER_AS_OBJECT(vsrc1); 7 8 if (!checkForNullExportPC(obj, fp, pc)) 9 GOTO_exceptionThrown(); 10 11 /* 12 * The object should be marked "finalizable" when Object.<init> 13 * completes normally. We're going to assume it does complete 14 * (by virtue of being nothing but a return-void) and set it now. 15 */ 16 if (IS_CLASS_FLAG_SET(obj->clazz, CLASS_ISFINALIZABLE)) { 17 EXPORT_PC(); 18 dvmSetFinalizable(obj); 19 if (dvmGetException(self)) 20 GOTO_exceptionThrown(); 21 } 22 23 if (self->interpBreak.ctl.subMode & kSubModeDebuggerActive) { 24 /* behave like OP_INVOKE_DIRECT_RANGE */ 25 GOTO_invoke(invokeDirect, true); 26 } 27 FINISH(3); 28 } 29 OP_END 30