private void addAnnotatedMethodInvoker(ClassWriter cw, String superClass, List<JavaMethodDescriptor> descs) { for (JavaMethodDescriptor desc: descs) { int specificArity = desc.calculateSpecificCallArity(); SkinnyMethodAdapter mv = beginMethod(cw, "call", specificArity, desc.hasBlock); mv.visitCode(); createAnnotatedMethodInvocation(desc, mv, superClass, specificArity, desc.hasBlock); mv.end(); } }
private void addAnnotatedMethodInvoker(ClassWriter cw, String superClass, List<JavaMethodDescriptor> descs) { for (JavaMethodDescriptor desc: descs) { int specificArity = desc.calculateSpecificCallArity(); SkinnyMethodAdapter mv = beginMethod(cw, "call", specificArity, desc.hasBlock); mv.visitCode(); createAnnotatedMethodInvocation(desc, mv, superClass, specificArity, desc.hasBlock); mv.end(); } }
private void addAnnotatedMethodInvoker(ClassWriter cw, String callName, String superClass, List<JavaMethodDescriptor> descs) { for (JavaMethodDescriptor desc: descs) { int specificArity = -1; if (desc.optional == 0 && !desc.rest) { if (desc.required == 0) { if (desc.actualRequired <= 3) { specificArity = desc.actualRequired; } else { specificArity = -1; } } else if (desc.required >= 0 && desc.required <= 3) { specificArity = desc.required; } } boolean hasBlock = desc.hasBlock; SkinnyMethodAdapter mv = null; mv = beginMethod(cw, callName, specificArity, hasBlock); mv.visitCode(); createAnnotatedMethodInvocation(desc, mv, superClass, specificArity, hasBlock); mv.end(); } }
private void addAnnotatedMethodInvoker(ClassWriter cw, String callName, String superClass, List<JavaMethodDescriptor> descs) { for (JavaMethodDescriptor desc: descs) { int specificArity = -1; if (desc.optional == 0 && !desc.rest) { if (desc.required == 0) { if (desc.actualRequired <= 3) { specificArity = desc.actualRequired; } else { specificArity = -1; } } else if (desc.required >= 0 && desc.required <= 3) { specificArity = desc.required; } } boolean hasBlock = desc.hasBlock; SkinnyMethodAdapter mv = null; mv = beginMethod(cw, callName, specificArity, hasBlock); mv.visitCode(); createAnnotatedMethodInvocation(desc, mv, superClass, specificArity, hasBlock); mv.end(); } }