VM_Address varargAddress; if (isDotDotStyle)  varargAddress = pushVarArgToSpillArea(methodID, false); else varargAddress = argAddress;
Object argObjs[];
  public static Object invokeInitializer(Class cls, int methodID, VM_Address argAddress, 					 boolean isJvalue, boolean isDotDotStyle)     throws Exception {    // get the parameter list as Java class    VM_Method mth = VM_MemberReference.getMemberRef(methodID).asMethodReference().resolve();    VM_TypeReference[] argTypes = mth.getParameterTypes();    Class[]   argClasses = new Class[argTypes.length];    for (int i=0; i<argClasses.length; i++) {      argClasses[i] = argTypes[i].resolve(true).getClassForType();    }    Constructor constMethod = cls.getConstructor(argClasses);    if (constMethod==null)      throw new Exception("Constructor not found");    // Package the parameters for the constructor    VM_Address varargAddress;    if (isDotDotStyle)       // flag is false because this JNI function has 3 args before the var args      varargAddress = pushVarArgToSpillArea(methodID, false);        else      varargAddress = argAddress;    Object argObjs[];    if (isJvalue)      argObjs = packageParameterFromJValue(mth, argAddress);    else      argObjs = packageParameterFromVarArg(mth, varargAddress);    // construct the new object    Object newobj = constMethod.newInstance(argObjs);        return newobj;  }