Lines 563-577
Link Here
|
563 |
CharOperation.replace(methodDescriptor, '/', '.'); |
563 |
CharOperation.replace(methodDescriptor, '/', '.'); |
564 |
final boolean isVarArgs = isVarArgs(methodInfo); |
564 |
final boolean isVarArgs = isVarArgs(methodInfo); |
565 |
char[] methodHeader = null; |
565 |
char[] methodHeader = null; |
|
|
566 |
char[][] parameterNames = null; |
567 |
if (!methodInfo.isClinit()) { |
568 |
parameterNames = getParameterNames(methodDescriptor, codeAttribute, accessFlags); |
569 |
} |
566 |
if (methodInfo.isConstructor()) { |
570 |
if (methodInfo.isConstructor()) { |
567 |
if (checkMode(mode, WORKING_COPY) && signatureAttribute != null) { |
571 |
if (checkMode(mode, WORKING_COPY) && signatureAttribute != null) { |
568 |
final char[] signature = signatureAttribute.getSignature(); |
572 |
final char[] signature = signatureAttribute.getSignature(); |
569 |
CharOperation.replace(signature, '/', '.'); |
573 |
CharOperation.replace(signature, '/', '.'); |
570 |
disassembleGenericSignature(mode, buffer, signature); |
574 |
disassembleGenericSignature(mode, buffer, signature); |
571 |
buffer.append(' '); |
575 |
buffer.append(' '); |
572 |
methodHeader = Signature.toCharArray(signature, returnClassName(className, '.', COMPACT), getParameterNames(methodDescriptor, codeAttribute, accessFlags) , !checkMode(mode, COMPACT), false, isVarArgs); |
576 |
methodHeader = Signature.toCharArray(signature, returnClassName(className, '.', COMPACT), parameterNames, !checkMode(mode, COMPACT), false, isVarArgs); |
573 |
} else { |
577 |
} else { |
574 |
methodHeader = Signature.toCharArray(methodDescriptor, returnClassName(className, '.', COMPACT), getParameterNames(methodDescriptor, codeAttribute, accessFlags) , !checkMode(mode, COMPACT), false, isVarArgs); |
578 |
methodHeader = Signature.toCharArray(methodDescriptor, returnClassName(className, '.', COMPACT), parameterNames, !checkMode(mode, COMPACT), false, isVarArgs); |
575 |
} |
579 |
} |
576 |
} else if (methodInfo.isClinit()) { |
580 |
} else if (methodInfo.isClinit()) { |
577 |
methodHeader = Messages.bind(Messages.classfileformat_clinitname).toCharArray(); |
581 |
methodHeader = Messages.bind(Messages.classfileformat_clinitname).toCharArray(); |
Lines 581-589
Link Here
|
581 |
CharOperation.replace(signature, '/', '.'); |
585 |
CharOperation.replace(signature, '/', '.'); |
582 |
disassembleGenericSignature(mode, buffer, signature); |
586 |
disassembleGenericSignature(mode, buffer, signature); |
583 |
buffer.append(' '); |
587 |
buffer.append(' '); |
584 |
methodHeader = Signature.toCharArray(signature, methodInfo.getName(), getParameterNames(methodDescriptor, codeAttribute, accessFlags) , !checkMode(mode, COMPACT), true, isVarArgs); |
588 |
methodHeader = Signature.toCharArray(signature, methodInfo.getName(), parameterNames, !checkMode(mode, COMPACT), true, isVarArgs); |
585 |
} else { |
589 |
} else { |
586 |
methodHeader = Signature.toCharArray(methodDescriptor, methodInfo.getName(), getParameterNames(methodDescriptor, codeAttribute, accessFlags) , !checkMode(mode, COMPACT), true, isVarArgs); |
590 |
methodHeader = Signature.toCharArray(methodDescriptor, methodInfo.getName(), parameterNames, !checkMode(mode, COMPACT), true, isVarArgs); |
587 |
} |
591 |
} |
588 |
} |
592 |
} |
589 |
if (checkMode(mode, DETAILED) && (runtimeInvisibleParameterAnnotationsAttribute != null || runtimeVisibleParameterAnnotationsAttribute != null)) { |
593 |
if (checkMode(mode, DETAILED) && (runtimeInvisibleParameterAnnotationsAttribute != null || runtimeVisibleParameterAnnotationsAttribute != null)) { |
Lines 704-710
Link Here
|
704 |
|
708 |
|
705 |
if (checkMode(mode, SYSTEM | DETAILED)) { |
709 |
if (checkMode(mode, SYSTEM | DETAILED)) { |
706 |
if (codeAttribute != null) { |
710 |
if (codeAttribute != null) { |
707 |
disassemble(codeAttribute, buffer, lineSeparator, tabNumber, mode); |
711 |
disassemble(codeAttribute, parameterNames, methodDescriptor, (accessFlags & IModifierConstants.ACC_STATIC) != 0, buffer, lineSeparator, tabNumber, mode); |
708 |
} |
712 |
} |
709 |
} |
713 |
} |
710 |
if (checkMode(mode, SYSTEM)) { |
714 |
if (checkMode(mode, SYSTEM)) { |
Lines 1037-1045
Link Here
|
1037 |
// check the presence of the unspecified Varargs attribute |
1041 |
// check the presence of the unspecified Varargs attribute |
1038 |
return Util.getAttribute(methodInfo, AttributeNamesConstants.VarargsName) != null; |
1042 |
return Util.getAttribute(methodInfo, AttributeNamesConstants.VarargsName) != null; |
1039 |
} |
1043 |
} |
1040 |
private void disassemble(ICodeAttribute codeAttribute, StringBuffer buffer, String lineSeparator, int tabNumber, int mode) { |
1044 |
private void disassemble(ICodeAttribute codeAttribute, char[][] parameterNames, char[] methodDescriptor, boolean isStatic, StringBuffer buffer, String lineSeparator, int tabNumber, int mode) { |
1041 |
writeNewLine(buffer, lineSeparator, tabNumber - 1); |
1045 |
writeNewLine(buffer, lineSeparator, tabNumber - 1); |
1042 |
DefaultBytecodeVisitor visitor = new DefaultBytecodeVisitor(codeAttribute, buffer, lineSeparator, tabNumber, mode); |
1046 |
DefaultBytecodeVisitor visitor = new DefaultBytecodeVisitor(codeAttribute, parameterNames, methodDescriptor, isStatic, buffer, lineSeparator, tabNumber, mode); |
1043 |
try { |
1047 |
try { |
1044 |
codeAttribute.traverse(visitor); |
1048 |
codeAttribute.traverse(visitor); |
1045 |
} catch(ClassFormatException e) { |
1049 |
} catch(ClassFormatException e) { |