public void callSuper( Code code, String name, String superclass, Class<?>[] parameters, Class<?> ret, String sig) throws Exception { code.aload(0); int local_index; int i; for (i = 0, local_index = 1; i < parameters.length; i++) { switch (getType(parameters[i])) { case tCharacter: case tBoolean: case tByte: case tShort: case tInteger: code.iload(local_index); local_index += 1; break; case tLong: code.lload(local_index); local_index += 2; break; case tFloat: code.fload(local_index); local_index += 1; break; case tDouble: code.dload(local_index); local_index += 2; break; default: code.aload(local_index); local_index += 1; break; } } code.invokespecial(superclass, name, sig); doReturn(code, ret); }