You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2015/08/13 23:43:49 UTC
svn commit: r1695784 - in /commons/proper/bcel/trunk/src: changes/
main/java/org/apache/commons/bcel6/classfile/
main/java/org/apache/commons/bcel6/generic/
main/java/org/apache/commons/bcel6/util/
Author: sebb
Date: Thu Aug 13 21:43:49 2015
New Revision: 1695784
URL: http://svn.apache.org/r1695784
Log:
BCEL-201 modify several toString methods to make output similar to "javap"
Modified:
commons/proper/bcel/trunk/src/changes/changes.xml
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClass.java
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClasses.java
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariable.java
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariableTypeTable.java
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/generic/BranchInstruction.java
commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/BCELifier.java
Modified: commons/proper/bcel/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/changes/changes.xml?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/changes/changes.xml (original)
+++ commons/proper/bcel/trunk/src/changes/changes.xml Thu Aug 13 21:43:49 2015
@@ -63,6 +63,7 @@ The <action> type attribute can be add,u
<body>
<release version="6.0" date="TBA" description="Major release with Java 7 and 8 support">
+ <action issue="BCEL-201" type="update">modify several toString methods to make output similar to "javap"</action>
<action issue="BCEL-205" type="update">add javadoc comments to LineNumber.java and LineNumberTable.java</action>
<action issue="BCEL-208" type="fix">Need to check for an empty InstructionList</action>
<action issue="BCEL-212" type="update">Inconsistent toString() results</action>
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClass.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClass.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClass.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClass.java Thu Aug 13 21:43:49 2015
@@ -155,20 +155,19 @@ public final class InnerClass implements
if (outer_class_index != 0) {
outer_class_name = constant_pool.getConstantString(outer_class_index,
Constants.CONSTANT_Class);
- outer_class_name = Utility.compactClassName(outer_class_name);
+ outer_class_name = " of class " + Utility.compactClassName(outer_class_name);
} else {
- outer_class_name = "<not a member>";
+ outer_class_name = "";
}
if (inner_name_index != 0) {
inner_name = ((ConstantUtf8) constant_pool.getConstant(inner_name_index,
Constants.CONSTANT_Utf8)).getBytes();
} else {
- inner_name = "<anonymous>";
+ inner_name = "(anonymous)";
}
access = Utility.accessToString(inner_access_flags, true);
access = access.equals("") ? "" : (access + " ");
- return "InnerClass:" + access + inner_class_name + "(\"" + outer_class_name + "\", \""
- + inner_name + "\")";
+ return " " + access + inner_name + "=class " + inner_class_name + outer_class_name;
}
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClasses.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClasses.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClasses.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/InnerClasses.java Thu Aug 13 21:43:49 2015
@@ -123,6 +123,9 @@ public final class InnerClasses extends
@Override
public final String toString() {
StringBuilder buf = new StringBuilder();
+ buf.append("InnerClasses(");
+ buf.append(inner_classes.length);
+ buf.append("):\n");
for (InnerClass inner_class : inner_classes) {
buf.append(inner_class.toString(super.getConstantPool())).append("\n");
}
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariable.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariable.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariable.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariable.java Thu Aug 13 21:43:49 2015
@@ -179,14 +179,23 @@ public final class LocalVariable impleme
}
+ /*
+ * Helper method shared with LocalVariableTypeTable
+ */
+ final String toStringShared( boolean typeTable ) {
+ String name = getName(), signature = Utility.signatureToString(getSignature(), false);
+ String label = "LocalVariable" + (typeTable ? "Types" : "" );
+ return label + "(start_pc = " + start_pc + ", length = " + length + ", index = "
+ + index + ":" + signature + " " + name + ")";
+ }
+
+
/**
* @return string representation.
*/
@Override
public final String toString() {
- String name = getName(), signature = Utility.signatureToString(getSignature());
- return "LocalVariable(start_pc = " + start_pc + ", length = " + length + ", index = "
- + index + ":" + signature + " " + name + ")";
+ return toStringShared(false);
}
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariableTypeTable.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariableTypeTable.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariableTypeTable.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/classfile/LocalVariableTypeTable.java Thu Aug 13 21:43:49 2015
@@ -116,7 +116,7 @@ public class LocalVariableTypeTable exte
StringBuilder buf = new StringBuilder();
for (int i = 0; i < local_variable_type_table.length; i++) {
- buf.append(local_variable_type_table[i].toString());
+ buf.append(local_variable_type_table[i].toStringShared(true));
if (i < local_variable_type_table.length - 1) {
buf.append('\n');
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/generic/BranchInstruction.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/generic/BranchInstruction.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/generic/BranchInstruction.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/generic/BranchInstruction.java Thu Aug 13 21:43:49 2015
@@ -135,13 +135,18 @@ public abstract class BranchInstruction
} else if (target.getInstruction() == null) {
t = "<null instruction!!!?>";
} else {
- t = target.getInstruction().toString(false); // Avoid circles
+ // I'm more interested in the address of the target then
+ // the instruction located there.
+ //t = target.getInstruction().toString(false); // Avoid circles
+ t = "" + target.getPosition();
}
}
} else {
if (target != null) {
- index = getTargetOffset();
- t = "" + (index + position);
+ index = target.getPosition();
+ // index = getTargetOffset(); crashes if positions haven't been set
+ // t = "" + (index + position);
+ t = "" + index;
}
}
return s + " -> " + t;
Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/BCELifier.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/BCELifier.java?rev=1695784&r1=1695783&r2=1695784&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/BCELifier.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/BCELifier.java Thu Aug 13 21:43:49 2015
@@ -191,7 +191,7 @@ public class BCELifier extends org.apach
}
- static String printFlags( int flags, int reason ) {
+ public static String printFlags( int flags, int reason ) {
if (flags == 0) {
return "0";
}
@@ -205,9 +205,10 @@ public class BCELifier extends org.apach
} else if ((pow == Constants.ACC_TRANSIENT) && (reason == FLAG_FOR_METHOD)) {
buf.append("ACC_VARARGS | ");
} else {
- buf.append("ACC_")
- .append(Constants.ACCESS_NAMES[i].toUpperCase(Locale.ENGLISH)).append(
- " | ");
+ if (i < Constants.ACCESS_NAMES.length)
+ buf.append("ACC_").append(Constants.ACCESS_NAMES[i].toUpperCase(Locale.ENGLISH)).append( " | ");
+ else
+ buf.append(String.format ("ACC_BIT %x | ", pow));
}
}
pow <<= 1;