aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2004-04-19 04:08:36 +0000
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2004-04-19 04:08:36 +0000
commitc86c20c27f914c9b0696b6f93d61e145e6e28ec3 (patch)
tree43f9fc565e18c1d81430eed97af28e0cdd9d21c2 /src
parent17ac0d828783b8f3036d259d618f5a8effd898d7 (diff)
downloadjavassist-c86c20c27f914c9b0696b6f93d61e145e6e28ec3.tar.gz
javassist-c86c20c27f914c9b0696b6f93d61e145e6e28ec3.zip
performance tuning.
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@89 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
Diffstat (limited to 'src')
-rw-r--r--src/main/javassist/ClassPool.java1
-rw-r--r--src/main/javassist/CtClassType.java2
-rw-r--r--src/main/javassist/bytecode/ClassFile.java23
3 files changed, 15 insertions, 11 deletions
diff --git a/src/main/javassist/ClassPool.java b/src/main/javassist/ClassPool.java
index 52909cd2..8139ac5d 100644
--- a/src/main/javassist/ClassPool.java
+++ b/src/main/javassist/ClassPool.java
@@ -507,6 +507,7 @@ public class ClassPool {
public CtClass makeClass(InputStream classfile)
throws IOException, RuntimeException
{
+ classfile = new BufferedInputStream(classfile);
CtClass clazz = new CtClassType(classfile, this);
clazz.checkModify();
String classname = clazz.getName();
diff --git a/src/main/javassist/CtClassType.java b/src/main/javassist/CtClassType.java
index 44481553..c1594c41 100644
--- a/src/main/javassist/CtClassType.java
+++ b/src/main/javassist/CtClassType.java
@@ -20,6 +20,7 @@ import javassist.compiler.Javac;
import javassist.compiler.CompileError;
import javassist.expr.ExprEditor;
import java.io.InputStream;
+import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
@@ -113,6 +114,7 @@ class CtClassType extends CtClass {
if (fin == null)
throw new NotFoundException(getName());
+ fin = new BufferedInputStream(fin);
classfile = new ClassFile(new DataInputStream(fin));
return classfile;
}
diff --git a/src/main/javassist/bytecode/ClassFile.java b/src/main/javassist/bytecode/ClassFile.java
index 9e759b0d..65e1392e 100644
--- a/src/main/javassist/bytecode/ClassFile.java
+++ b/src/main/javassist/bytecode/ClassFile.java
@@ -20,6 +20,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.ListIterator;
import java.util.List;
@@ -38,8 +39,8 @@ public final class ClassFile {
int accessFlags;
int superClass;
int[] interfaces;
- LinkedList fields;
- LinkedList methods;
+ ArrayList fields;
+ ArrayList methods;
LinkedList attributes;
AnnotationGroup runtimeInvisible;
AnnotationGroup runtimeVisible;
@@ -73,8 +74,8 @@ public final class ClassFile {
initSuperclass(superclass);
interfaces = null;
- fields = new LinkedList();
- methods = new LinkedList();
+ fields = new ArrayList();
+ methods = new ArrayList();
thisclassname = classname;
attributes = new LinkedList();
@@ -187,7 +188,7 @@ public final class ClassFile {
try {
superClass = constPool.addClassInfo(superclass);
- LinkedList list = methods;
+ ArrayList list = methods;
int n = list.size();
for (int i = 0; i < n; ++i) {
MethodInfo minfo = (MethodInfo)list.get(i);
@@ -212,7 +213,7 @@ public final class ClassFile {
* @param newname the substituted class name
*/
public final void renameClass(String oldname, String newname) {
- LinkedList list;
+ ArrayList list;
int n;
if (oldname.equals(newname))
@@ -261,7 +262,7 @@ public final class ClassFile {
constPool.renameClass(classnames);
- LinkedList list = methods;
+ ArrayList list = methods;
int n = list.size();
for (int i = 0; i < n; ++i) {
MethodInfo minfo = (MethodInfo)list.get(i);
@@ -377,7 +378,7 @@ public final class ClassFile {
* @return null if no such a method is found.
*/
public MethodInfo getMethod(String name) {
- LinkedList list = methods;
+ ArrayList list = methods;
int n = list.size();
for (int i = 0; i < n; ++i) {
MethodInfo minfo = (MethodInfo)list.get(i);
@@ -552,12 +553,12 @@ public final class ClassFile {
ConstPool cp = constPool;
n = in.readUnsignedShort();
- fields = new LinkedList();
+ fields = new ArrayList();
for (i = 0; i < n; ++i)
addField0(new FieldInfo(cp, in));
n = in.readUnsignedShort();
- methods = new LinkedList();
+ methods = new ArrayList();
for (i = 0; i < n; ++i)
addMethod0(new MethodInfo(cp, in));
@@ -593,7 +594,7 @@ public final class ClassFile {
for (i = 0; i < n; ++i)
out.writeShort(interfaces[i]);
- LinkedList list = fields;
+ ArrayList list = fields;
n = list.size();
out.writeShort(n);
for (i = 0; i < n; ++i) {