Refactor the writeParameters method a bit

- Accepts a method instead of the parameter list directly
- Uses the correct pN register values for non-static vs. static methods
- Adds a space after the # for the type comment
This commit is contained in:
Ben Gruver 2012-10-31 20:20:28 -07:00
parent db4316ef6d
commit c3a3ee3799

View File

@ -113,7 +113,7 @@ public class MethodDefinition {
writer.write('\n'); writer.write('\n');
writer.indent(4); writer.indent(4);
writeParameters(writer, method.getParameters()); writeParameters(writer, method);
AnnotationFormatter.writeTo(writer, method.getAnnotations()); AnnotationFormatter.writeTo(writer, method.getAnnotations());
writer.deindent(4); writer.deindent(4);
writer.write(".end method\n"); writer.write(".end method\n");
@ -150,7 +150,7 @@ public class MethodDefinition {
writer.printSignedIntAsDec(methodImpl.getRegisterCount()); writer.printSignedIntAsDec(methodImpl.getRegisterCount());
} }
writer.write('\n'); writer.write('\n');
writeParameters(writer, method.getParameters()); writeParameters(writer, method);
if (registerFormatter == null) { if (registerFormatter == null) {
registerFormatter = new RegisterFormatter(methodImpl.getRegisterCount(), parameterRegisterCount); registerFormatter = new RegisterFormatter(methodImpl.getRegisterCount(), parameterRegisterCount);
@ -202,10 +202,10 @@ public class MethodDefinition {
} }
} }
private static void writeParameters(IndentingWriter writer, private static void writeParameters(IndentingWriter writer, Method method) throws IOException {
List<? extends MethodParameter> parameters) throws IOException { boolean isStatic = AccessFlags.STATIC.isSet(method.getAccessFlags());
int registerNumber = 0; int registerNumber = isStatic?0:1;
for (MethodParameter parameter: parameters) { for (MethodParameter parameter: method.getParameters()) {
String parameterType = parameter.getType(); String parameterType = parameter.getType();
String parameterName = parameter.getName(); String parameterName = parameter.getName();
List<? extends Annotation> annotations = parameter.getAnnotations(); List<? extends Annotation> annotations = parameter.getAnnotations();