10346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFaddenHANDLE_OPCODE(OP_INVOKE_OBJECT_INIT_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 26af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden { 36af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden Object* obj; 46af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden 50346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFadden vsrc1 = FETCH(2); /* reg number of "this" pointer */ 66af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden obj = GET_REGISTER_AS_OBJECT(vsrc1); 76af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden 86af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden if (!checkForNullExportPC(obj, fp, pc)) 96af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden GOTO_exceptionThrown(); 106af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden 116af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden /* 126af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden * The object should be marked "finalizable" when Object.<init> 136af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden * completes normally. We're going to assume it does complete 146af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden * (by virtue of being nothing but a return-void) and set it now. 156af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden */ 166af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden if (IS_CLASS_FLAG_SET(obj->clazz, CLASS_ISFINALIZABLE)) { 173475f9cdb47a6d6f8ad2ce49bbc3af46bca92f09Carl Shapiro EXPORT_PC(); 186af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden dvmSetFinalizable(obj); 198cd640b8327e2591c8dd8a69093fa1fc6c901c05Andy McFadden if (dvmGetException(self)) 208cd640b8327e2591c8dd8a69093fa1fc6c901c05Andy McFadden GOTO_exceptionThrown(); 216af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden } 226af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden 239a3147c7412f4794434b4c2604aa2ba784867774buzbee if (self->interpBreak.ctl.subMode & kSubModeDebuggerActive) { 240346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFadden /* behave like OP_INVOKE_DIRECT_RANGE */ 25ab35b50311951feea3782151dd5422ee944685c2Elliott Hughes GOTO_invoke(invokeDirect, true); 266af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden } 2724bd4c50bb3ea13be4f049710967961f0546fb2cAndy McFadden FINISH(3); 286af2ddd107842c3737c04c37343cac9be17f4209Andy McFadden } 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source ProjectOP_END 30