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