private void pushResolveInterceptorsCall(GeneratorAdapter proxyConstructorGenerator, int i) { // The following will initialize the array of interceptor instances // eg. this.interceptors[0] = InterceptorChain.resolveAroundInterceptors(beanContext, proxyMethods[0], interceptors); proxyConstructorGenerator.loadThis(); proxyConstructorGenerator.getField(proxyType, FIELD_INTERCEPTORS, FIELD_TYPE_INTERCEPTORS); proxyConstructorGenerator.push(i); // First argument. The bean context proxyConstructorGenerator.loadArg(beanContextArgumentIndex); // Second argument ie. proxyMethods[0] proxyConstructorGenerator.loadThis(); proxyConstructorGenerator.getField(proxyType, FIELD_PROXY_METHODS, FIELD_TYPE_PROXY_METHODS); proxyConstructorGenerator.push(i); proxyConstructorGenerator.visitInsn(AALOAD); // Third argument ie. interceptors proxyConstructorGenerator.loadArg(interceptorArgumentIndex); if (isIntroduction) { proxyConstructorGenerator.invokeStatic(TYPE_INTERCEPTOR_CHAIN, Method.getMethod(RESOLVE_INTRODUCTION_INTERCEPTORS_METHOD)); } else { proxyConstructorGenerator.invokeStatic(TYPE_INTERCEPTOR_CHAIN, Method.getMethod(RESOLVE_AROUND_INTERCEPTORS_METHOD)); } proxyConstructorGenerator.visitInsn(AASTORE); }
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addBatchedWriteAheadLog", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addRateController", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addRateController", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addBatchedWriteAheadLog", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override void onMethodEnter(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addPyMonitorThread", Type.VOID_TYPE, new Type[] { Type.getType(Thread.class) })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addBatchedWriteAheadLog", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addRateController", Type.VOID_TYPE, new Type[] { Type.getType(Object.class) })); } });
@Override void onMethodEnter(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addPyMonitorThread", Type.VOID_TYPE, new Type[] { Type.getType(Thread.class) })); } });
@Override void onMethodEnter(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("addPyMonitorThread", Type.VOID_TYPE, new Type[] { Type.getType(Thread.class) })); } });
protected static void trace(@NonNull GeneratorAdapter mv, int argsNumber) { StringBuilder methodSignature = new StringBuilder("void trace(String"); for (int i=0 ; i < argsNumber-1; i++) { methodSignature.append(", String"); } methodSignature.append(")"); mv.invokeStatic(Type.getObjectType(PACKAGE + "/AndroidInstantRuntime"), Method.getMethod(methodSignature.toString())); }
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setupSparkConf", Type.VOID_TYPE, new Type[] { sparkConfType })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setContext", Type.VOID_TYPE, new Type[] { contextType })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setContext", Type.VOID_TYPE, new Type[] { contextType })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setContext", Type.VOID_TYPE, new Type[] { contextType })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setupSparkConf", Type.VOID_TYPE, new Type[] { sparkConfType })); } });
@Override public void onMethodExit(String name, String desc, GeneratorAdapter generatorAdapter) { generatorAdapter.loadThis(); generatorAdapter.invokeStatic(SPARK_RUNTIME_ENV_TYPE, new Method("setupSparkConf", Type.VOID_TYPE, new Type[] { sparkConfType })); } });
protected static void trace(@NonNull GeneratorAdapter mv, @Nullable String s) { mv.push(s); mv.invokeStatic(Type.getObjectType(PACKAGE + "/AndroidInstantRuntime"), Method.getMethod("void trace(String)")); }
@SuppressWarnings("unused") protected static void trace(@NonNull GeneratorAdapter mv, @Nullable String s1, @Nullable String s2) { mv.push(s1); mv.push(s2); mv.invokeStatic(Type.getObjectType(PACKAGE + "/AndroidInstantRuntime"), Method.getMethod("void trace(String, String)")); }
private static void storeExceptionResultFromThrowable(GeneratorAdapter mv, int resLocal, int iLocal) { int eLocal = mv.newLocal(THROWABLE_TYPE); mv.storeLocal(eLocal); mv.loadLocal(resLocal); mv.loadLocal(iLocal); mv.loadLocal(eLocal); mv.invokeVirtual(OBJECT_TYPE, OBJECT_GET_CLASS); mv.invokeStatic(RESULT_TYPE, RESULT_CREATE_EXCEPTION_RESULT); mv.arrayStore(RESULT_TYPE); }