private static void addMethod(final Map<MethodKey, MethodData> methods, final Method method) { final int mod = method.getModifiers(); if ( Modifier.isStatic(mod) || Modifier.isPrivate(mod) ) { return; } MethodKey methodKey = new MethodKey(method); MethodData methodData = methods.get(methodKey); if (methodData == null) { methodData = new MethodData(method); methods.put(methodKey, methodData); } methodData.add(method); }
private StringBuilder scrambledSignature() { StringBuilder sb = new StringBuilder(); for ( Class param : getParameterTypes() ) { sb.append('$'); final char[] name = param.getName().toCharArray(); for (int i = 0; i < name.length; i++) { final char c; switch ( c = name[i] ) { case '.' : sb.append('_'); break; case '[' : sb.append('1'); break; case ';' : sb.append('2'); break; default : sb.append(c); } } } return sb; }
private static void addMethod(Map methods, Method method) { int acc = method.getModifiers(); if (Modifier.isStatic(acc) || Modifier.isPrivate(acc)) { return; } MethodKey mk = new MethodKey(method); MethodData md = (MethodData) methods.get(mk); if (md == null) { md = new MethodData(method); methods.put(mk, md); } md.add(method); }
private void generateProxyMethod(Type selfType, Type superType, ClassVisitor cw, GeneratorAdapter clazzInit, MethodData md) { if (!md.generateProxyMethod()) return; org.objectweb.asm.commons.Method m = md.getMethod(); Type[] ex = toType(md.getExceptions()); String field_name = "__mth$" + md.getName() + md.scrambledSignature(); clazzInit.push(m.getName()); clazzInit.push(m.getDescriptor()); clazzInit.push(md.isImplemented()); clazzInit.invokeStatic(PROXY_HELPER_TYPE, PROXY_HELPER_GET_METHOD); clazzInit.putStatic(selfType, field_name, PROXY_METHOD_TYPE); if (md.isImplemented()) { ga.dup(); Label ok = ga.newLabel(); if (md.isImplemented()) { GeneratorAdapter ga2 = new GeneratorAdapter(Opcodes.ACC_PUBLIC, sm, null, ex, cw);
private void generateProxyMethod(Type selfType, Type superType, ClassVisitor cw, GeneratorAdapter clazzInit, MethodData md) { if (!md.generateProxyMethod()) return; org.objectweb.asm.commons.Method m = md.getMethod(); Type[] ex = toType(md.getExceptions()); String field_name = "__mth$" + md.getName() + md.scrambledSignature(); clazzInit.push(m.getName()); clazzInit.push(m.getDescriptor()); clazzInit.push(md.isImplemented()); clazzInit.invokeStatic(PROXY_HELPER_TYPE, PROXY_HELPER_GET_METHOD); clazzInit.putStatic(selfType, field_name, PROXY_METHOD_TYPE); if (md.isImplemented()) { ga.dup(); Label ok = ga.newLabel(); if (md.isImplemented()) { GeneratorAdapter ga2 = new GeneratorAdapter(Opcodes.ACC_PUBLIC, sm, null, ex, cw);
clazzInit.push(m.getName()); clazzInit.push(m.getDescriptor()); clazzInit.push(md.isImplemented()); if (md.isImplemented()) { ga.dup(); Label ok = ga.newLabel(); if (md.isImplemented()) { GeneratorAdapter ga2 = new GeneratorAdapter(Opcodes.ACC_PUBLIC, sm, null, ex, cw);
clazzInit.push(m.getName()); clazzInit.push(m.getDescriptor()); clazzInit.push(md.isImplemented()); if (md.isImplemented()) { ga.dup(); Label ok = ga.newLabel(); if (md.isImplemented()) { GeneratorAdapter ga2 = new GeneratorAdapter(Opcodes.ACC_PUBLIC, sm, null, ex, cw);
private StringBuilder scrambledSignature() { StringBuilder sb = new StringBuilder(); for ( Class param : getParameterTypes() ) { sb.append('$'); final char[] name = param.getName().toCharArray(); for (int i = 0; i < name.length; i++) { final char c; switch ( c = name[i] ) { case '.' : sb.append('_'); break; case '[' : sb.append('1'); break; case ';' : sb.append('2'); break; default : sb.append(c); } } } return sb; }
private static void addMethod(final Map<MethodKey, MethodData> methods, final Method method) { final int mod = method.getModifiers(); if ( Modifier.isStatic(mod) || Modifier.isPrivate(mod) ) { return; } MethodKey methodKey = new MethodKey(method); MethodData methodData = methods.get(methodKey); if (methodData == null) { methodData = new MethodData(method); methods.put(methodKey, methodData); } methodData.add(method); }
public org.objectweb.asm.commons.Method getMethod() { return new org.objectweb.asm.commons.Method(getName(), Type .getType(getReturnType()), getType(getParameterTypes())); }
public String scrambledSignature() { StringBuilder sb = new StringBuilder(); Class[] parms = getParameterTypes(); for (int i = 0; i < parms.length; i++) { sb.append('$'); String name = parms[i].getName(); name = name.replace('[', '1'); name = name.replace('.', '_'); name = name.replace(';', '2'); sb.append(name); } return sb.toString(); }
public String scrambledSignature() { StringBuilder sb = new StringBuilder(); Class[] parms = getParameterTypes(); for (int i = 0; i < parms.length; i++) { sb.append('$'); String name = parms[i].getName(); name = name.replace('[', '1'); name = name.replace('.', '_'); name = name.replace(';', '2'); sb.append(name); } return sb.toString(); }
private static void addMethod(Map methods, Method method) { int acc = method.getModifiers(); if (Modifier.isStatic(acc) || Modifier.isPrivate(acc)) { return; } MethodKey mk = new MethodKey(method); MethodData md = (MethodData) methods.get(mk); if (md == null) { md = new MethodData(method); methods.put(mk, md); } md.add(method); }
public org.objectweb.asm.commons.Method getMethod() { return new org.objectweb.asm.commons.Method(getName(), Type .getType(getReturnType()), getType(getParameterTypes())); }
private org.objectweb.asm.commons.Method getMethod() { return new org.objectweb.asm.commons.Method(getName(), Type .getType(getReturnType()), getType(getParameterTypes())); }
private org.objectweb.asm.commons.Method getMethod() { return new org.objectweb.asm.commons.Method(getName(), Type .getType(getReturnType()), getType(getParameterTypes())); }