Home | History | Annotate | Download | only in c
      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, false);
     26         }
     27         FINISH(3);
     28     }
     29 OP_END
     30