Lines 17-22
Link Here
|
17 |
import org.eclipse.jdt.core.Signature; |
17 |
import org.eclipse.jdt.core.Signature; |
18 |
import org.eclipse.jdt.core.compiler.CharOperation; |
18 |
import org.eclipse.jdt.core.compiler.CharOperation; |
19 |
import org.eclipse.jdt.core.util.*; |
19 |
import org.eclipse.jdt.core.util.*; |
|
|
20 |
import org.eclipse.jdt.internal.compiler.codegen.AttributeNamesConstants; |
20 |
import org.eclipse.jdt.internal.compiler.lookup.TypeConstants; |
21 |
import org.eclipse.jdt.internal.compiler.lookup.TypeConstants; |
21 |
|
22 |
|
22 |
/** |
23 |
/** |
Lines 560-566
Link Here
|
560 |
buffer.append(Messages.disassembler_space); |
561 |
buffer.append(Messages.disassembler_space); |
561 |
} |
562 |
} |
562 |
CharOperation.replace(methodDescriptor, '/', '.'); |
563 |
CharOperation.replace(methodDescriptor, '/', '.'); |
563 |
final boolean isVarArgs = (accessFlags & IModifierConstants.ACC_VARARGS) != 0; |
564 |
final boolean isVarArgs = isVarArgs(methodInfo); |
564 |
if (methodInfo.isConstructor()) { |
565 |
if (methodInfo.isConstructor()) { |
565 |
if (checkMode(mode, WORKING_COPY) && signatureAttribute != null) { |
566 |
if (checkMode(mode, WORKING_COPY) && signatureAttribute != null) { |
566 |
final char[] signature = signatureAttribute.getSignature(); |
567 |
final char[] signature = signatureAttribute.getSignature(); |
Lines 619-625
Link Here
|
619 |
if (returnType.length == 1) { |
620 |
if (returnType.length == 1) { |
620 |
switch(returnType[0]) { |
621 |
switch(returnType[0]) { |
621 |
case 'V' : |
622 |
case 'V' : |
622 |
writeNewLine(buffer, lineSeparator, tabNumber); |
623 |
writeNewLine(buffer, lineSeparator, tabNumber); |
623 |
break; |
624 |
break; |
624 |
case 'I' : |
625 |
case 'I' : |
625 |
case 'B' : |
626 |
case 'B' : |
Lines 630-648
Link Here
|
630 |
case 'C' : |
631 |
case 'C' : |
631 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
632 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
632 |
buffer.append("return 0;"); //$NON-NLS-1$ |
633 |
buffer.append("return 0;"); //$NON-NLS-1$ |
633 |
writeNewLine(buffer, lineSeparator, tabNumber); |
634 |
writeNewLine(buffer, lineSeparator, tabNumber); |
634 |
break; |
635 |
break; |
635 |
default : |
636 |
default : |
636 |
// boolean |
637 |
// boolean |
637 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
638 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
638 |
buffer.append("return false;"); //$NON-NLS-1$ |
639 |
buffer.append("return false;"); //$NON-NLS-1$ |
639 |
writeNewLine(buffer, lineSeparator, tabNumber); |
640 |
writeNewLine(buffer, lineSeparator, tabNumber); |
640 |
} |
641 |
} |
641 |
} else { |
642 |
} else { |
642 |
// object |
643 |
// object |
643 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
644 |
writeNewLine(buffer, lineSeparator, tabNumber + 1); |
644 |
buffer.append("return null;"); //$NON-NLS-1$ |
645 |
buffer.append("return null;"); //$NON-NLS-1$ |
645 |
writeNewLine(buffer, lineSeparator, tabNumber); |
646 |
writeNewLine(buffer, lineSeparator, tabNumber); |
646 |
} |
647 |
} |
647 |
buffer.append('}'); |
648 |
buffer.append('}'); |
648 |
} else { |
649 |
} else { |
Lines 980-985
Link Here
|
980 |
return CharOperation.equals(TypeConstants.JAVA_LANG_OBJECT, CharOperation.splitOn('.', className)); |
981 |
return CharOperation.equals(TypeConstants.JAVA_LANG_OBJECT, CharOperation.splitOn('.', className)); |
981 |
} |
982 |
} |
982 |
|
983 |
|
|
|
984 |
private boolean isVarArgs(IMethodInfo methodInfo) { |
985 |
int accessFlags = methodInfo.getAccessFlags(); |
986 |
if ((accessFlags & IModifierConstants.ACC_VARARGS) != 0) return true; |
987 |
// check the presence of the unspecified Varargs attribute |
988 |
return Util.getAttribute(methodInfo, AttributeNamesConstants.VarargsName) != null; |
989 |
} |
983 |
private void disassemble(ICodeAttribute codeAttribute, StringBuffer buffer, String lineSeparator, int tabNumber, int mode) { |
990 |
private void disassemble(ICodeAttribute codeAttribute, StringBuffer buffer, String lineSeparator, int tabNumber, int mode) { |
984 |
writeNewLine(buffer, lineSeparator, tabNumber - 1); |
991 |
writeNewLine(buffer, lineSeparator, tabNumber - 1); |
985 |
DefaultBytecodeVisitor visitor = new DefaultBytecodeVisitor(codeAttribute, buffer, lineSeparator, tabNumber, mode); |
992 |
DefaultBytecodeVisitor visitor = new DefaultBytecodeVisitor(codeAttribute, buffer, lineSeparator, tabNumber, mode); |