Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace StringBuffer with StringBuilder, other minor String optimizations #382

Merged
merged 2 commits into from May 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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