Skip to content

Commit

Permalink
Merge pull request #382 from tim-hoffman/PR_RemoveStringBuffer
Browse files Browse the repository at this point in the history
Replace StringBuffer with StringBuilder, other minor String optimizations
  • Loading branch information
chibash committed May 12, 2022
2 parents df3f4b7 + 0827c53 commit 8fc31b8
Show file tree
Hide file tree
Showing 35 changed files with 121 additions and 118 deletions.
6 changes: 3 additions & 3 deletions src/main/javassist/ClassPoolTail.java
Expand Up @@ -54,7 +54,7 @@ public InputStream openClassfile(String classname) {
char sep = File.separatorChar;
String filename = directory + sep
+ classname.replace('.', sep) + ".class";
return new FileInputStream(filename.toString());
return new FileInputStream(filename);
}
catch (FileNotFoundException e) {}
catch (SecurityException e) {}
Expand Down Expand Up @@ -187,7 +187,7 @@ public URL find(String classname) {

@Override
public String toString() {
return jarfileURL == null ? "<null>" : jarfileURL.toString();
return jarfileURL == null ? "<null>" : jarfileURL;
}
}

Expand All @@ -200,7 +200,7 @@ public ClassPoolTail() {

@Override
public String toString() {
StringBuffer buf = new StringBuffer();
StringBuilder buf = new StringBuilder();
buf.append("[class path: ");
ClassPathList list = pathList;
while (list != null) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/javassist/CtBehavior.java
Expand Up @@ -100,7 +100,7 @@ void copy(CtBehavior src, boolean isCons, ClassMap map)
}

@Override
protected void extendToString(StringBuffer buffer) {
protected void extendToString(StringBuilder buffer) {
buffer.append(' ');
buffer.append(getName());
buffer.append(' ');
Expand Down
10 changes: 5 additions & 5 deletions src/main/javassist/CtClass.java
Expand Up @@ -200,20 +200,20 @@ protected CtClass(String name) {
*/
@Override
public String toString() {
StringBuffer buf = new StringBuffer(getClass().getName());
buf.append("@");
StringBuilder buf = new StringBuilder(getClass().getName());
buf.append('@');
buf.append(Integer.toHexString(hashCode()));
buf.append("[");
buf.append('[');
extendToString(buf);
buf.append("]");
buf.append(']');
return buf.toString();
}

/**
* Implemented in subclasses to add to the {@link #toString()} result.
* Subclasses should put a space before each token added to the buffer.
*/
protected void extendToString(StringBuffer buffer) {
protected void extendToString(StringBuilder buffer) {
buffer.append(getName());
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/javassist/CtClassType.java
Expand Up @@ -106,7 +106,7 @@ class CtClassType extends CtClass {
}

@Override
protected void extendToString(StringBuffer buffer) {
protected void extendToString(StringBuilder buffer) {
if (wasChanged)
buffer.append("changed ");

Expand All @@ -125,7 +125,7 @@ protected void extendToString(StringBuffer buffer) {
if (ext != null) {
String name = ext.getName();
if (!name.equals("java.lang.Object"))
buffer.append(" extends " + ext.getName());
buffer.append(" extends ").append(ext.getName());
}
}
catch (NotFoundException e) {
Expand Down Expand Up @@ -155,7 +155,7 @@ protected void extendToString(StringBuffer buffer) {
memCache.methodHead(), memCache.lastMethod());
}

private void exToString(StringBuffer buffer, String msg,
private void exToString(StringBuilder buffer, String msg,
CtMember head, CtMember tail) {
buffer.append(msg);
while (head != tail) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/javassist/CtField.java
Expand Up @@ -128,7 +128,7 @@ public String toString() {
}

@Override
protected void extendToString(StringBuffer buffer) {
protected void extendToString(StringBuilder buffer) {
buffer.append(' ');
buffer.append(getName());
buffer.append(' ');
Expand Down
12 changes: 6 additions & 6 deletions src/main/javassist/CtMember.java
Expand Up @@ -30,7 +30,7 @@ public abstract class CtMember {
*/
static class Cache extends CtMember {
@Override
protected void extendToString(StringBuffer buffer) {}
protected void extendToString(StringBuilder buffer) {}
@Override
public boolean hasAnnotation(String clz) { return false; }
@Override
Expand Down Expand Up @@ -155,13 +155,13 @@ void nameReplaced() {}

@Override
public String toString() {
StringBuffer buffer = new StringBuffer(getClass().getName());
buffer.append("@");
StringBuilder buffer = new StringBuilder(getClass().getName());
buffer.append('@');
buffer.append(Integer.toHexString(hashCode()));
buffer.append("[");
buffer.append('[');
buffer.append(Modifier.toString(getModifiers()));
extendToString(buffer);
buffer.append("]");
buffer.append(']');
return buffer.toString();
}

Expand All @@ -172,7 +172,7 @@ public String toString() {
* provided first; subclasses should provide additional data such
* as return type, field or method name, etc.
*/
protected abstract void extendToString(StringBuffer buffer);
protected abstract void extendToString(StringBuilder buffer);

/**
* Returns the class that declares this member.
Expand Down
2 changes: 1 addition & 1 deletion src/main/javassist/CtNewClass.java
Expand Up @@ -45,7 +45,7 @@ class CtNewClass extends CtClassType {
}

@Override
protected void extendToString(StringBuffer buffer) {
protected void extendToString(StringBuilder buffer) {
if (hasConstructor)
buffer.append("hasConstructor ");

Expand Down
24 changes: 12 additions & 12 deletions src/main/javassist/bytecode/Descriptor.java
Expand Up @@ -109,7 +109,7 @@ else if (c == 'Z')

if (arrayDim == 0)
return name;
StringBuffer sbuf = new StringBuffer(name);
StringBuilder sbuf = new StringBuilder(name);
do {
sbuf.append("[]");
} while (--arrayDim > 0);
Expand Down Expand Up @@ -157,7 +157,7 @@ public static String rename(String desc, String oldname, String newname) {
if (desc.indexOf(oldname) < 0)
return desc;

StringBuffer newdesc = new StringBuffer();
StringBuilder newdesc = new StringBuilder();
int head = 0;
int i = 0;
for (;;) {
Expand Down Expand Up @@ -200,7 +200,7 @@ public static String rename(String desc, Map<String,String> map) {
if (map == null)
return desc;

StringBuffer newdesc = new StringBuffer();
StringBuilder newdesc = new StringBuilder();
int head = 0;
int i = 0;
for (;;) {
Expand Down Expand Up @@ -237,12 +237,12 @@ public static String rename(String desc, Map<String,String> map) {
* Returns the descriptor representing the given type.
*/
public static String of(CtClass type) {
StringBuffer sbuf = new StringBuffer();
StringBuilder sbuf = new StringBuilder();
toDescriptor(sbuf, type);
return sbuf.toString();
}

private static void toDescriptor(StringBuffer desc, CtClass type) {
private static void toDescriptor(StringBuilder desc, CtClass type) {
if (type.isArray()) {
desc.append('[');
try {
Expand Down Expand Up @@ -284,7 +284,7 @@ public static String ofConstructor(CtClass[] paramTypes) {
* @param paramTypes parameter types
*/
public static String ofMethod(CtClass returnType, CtClass[] paramTypes) {
StringBuffer desc = new StringBuffer();
StringBuilder desc = new StringBuilder();
desc.append('(');
if (paramTypes != null) {
int n = paramTypes.length;
Expand Down Expand Up @@ -323,7 +323,7 @@ public static String appendParameter(String classname, String desc) {
int i = desc.indexOf(')');
if (i < 0)
return desc;
StringBuffer newdesc = new StringBuffer();
StringBuilder newdesc = new StringBuilder();
newdesc.append(desc.substring(0, i));
newdesc.append('L');
newdesc.append(classname.replace('.', '/'));
Expand Down Expand Up @@ -361,7 +361,7 @@ public static String appendParameter(CtClass type, String descriptor) {
int i = descriptor.indexOf(')');
if (i < 0)
return descriptor;
StringBuffer newdesc = new StringBuffer();
StringBuilder newdesc = new StringBuilder();
newdesc.append(descriptor.substring(0, i));
toDescriptor(newdesc, type);
newdesc.append(descriptor.substring(i));
Expand Down Expand Up @@ -395,7 +395,7 @@ public static String changeReturnType(String classname, String desc) {
int i = desc.indexOf(')');
if (i < 0)
return desc;
StringBuffer newdesc = new StringBuffer();
StringBuilder newdesc = new StringBuilder();
newdesc.append(desc.substring(0, i + 1));
newdesc.append('L');
newdesc.append(classname.replace('.', '/'));
Expand Down Expand Up @@ -561,7 +561,7 @@ private static int toCtClass(ClassPool cp, String desc, int i,
}

if (arrayDim > 0) {
StringBuffer sbuf = new StringBuffer(name);
StringBuilder sbuf = new StringBuilder(name);
while (arrayDim-- > 0)
sbuf.append("[]");

Expand Down Expand Up @@ -719,7 +719,7 @@ public static String toString(String desc) {

static class PrettyPrinter {
static String toString(String desc) {
StringBuffer sbuf = new StringBuffer();
StringBuilder sbuf = new StringBuilder();
if (desc.charAt(0) == '(') {
int pos = 1;
sbuf.append('(');
Expand All @@ -738,7 +738,7 @@ static String toString(String desc) {
return sbuf.toString();
}

static int readType(StringBuffer sbuf, int pos, String desc) {
static int readType(StringBuilder sbuf, int pos, String desc) {
char c = desc.charAt(pos);
int arrayDim = 0;
while (c == '[') {
Expand Down
12 changes: 6 additions & 6 deletions src/main/javassist/bytecode/InstructionPrinter.java
Expand Up @@ -235,17 +235,17 @@ private static String fieldInfo(ConstPool pool, int index) {


private static String lookupSwitch(CodeIterator iter, int pos) {
StringBuffer buffer = new StringBuffer("lookupswitch {\n");
StringBuilder buffer = new StringBuilder("lookupswitch {\n");
int index = (pos & ~3) + 4;
// default
buffer.append("\t\tdefault: ").append(pos + iter.s32bitAt(index)).append("\n");
buffer.append("\t\tdefault: ").append(pos + iter.s32bitAt(index)).append('\n');
int npairs = iter.s32bitAt(index += 4);
int end = npairs * 8 + (index += 4);

for (; index < end; index += 8) {
int match = iter.s32bitAt(index);
int target = iter.s32bitAt(index + 4) + pos;
buffer.append("\t\t").append(match).append(": ").append(target).append("\n");
buffer.append("\t\t").append(match).append(": ").append(target).append('\n');
}

buffer.setCharAt(buffer.length() - 1, '}');
Expand All @@ -254,18 +254,18 @@ private static String lookupSwitch(CodeIterator iter, int pos) {


private static String tableSwitch(CodeIterator iter, int pos) {
StringBuffer buffer = new StringBuffer("tableswitch {\n");
StringBuilder buffer = new StringBuilder("tableswitch {\n");
int index = (pos & ~3) + 4;
// default
buffer.append("\t\tdefault: ").append(pos + iter.s32bitAt(index)).append("\n");
buffer.append("\t\tdefault: ").append(pos + iter.s32bitAt(index)).append('\n');
int low = iter.s32bitAt(index += 4);
int high = iter.s32bitAt(index += 4);
int end = (high - low + 1) * 4 + (index += 4);

// Offset table
for (int key = low; index < end; index += 4, key++) {
int target = iter.s32bitAt(index) + pos;
buffer.append("\t\t").append(key).append(": ").append(target).append("\n");
buffer.append("\t\t").append(key).append(": ").append(target).append('\n');
}

buffer.setCharAt(buffer.length() - 1, '}');
Expand Down
Expand Up @@ -201,7 +201,7 @@ public String toString() {
StringBuilder sbuf = new StringBuilder();
for (Annotation[] a : aa) {
for (Annotation i : a)
sbuf.append(i.toString()).append(" ");
sbuf.append(i.toString()).append(' ');

sbuf.append(", ");
}
Expand Down

0 comments on commit 8fc31b8

Please sign in to comment.