]> source.dussan.org Git - javassist.git/commitdiff
performance tuning.
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Mon, 19 Apr 2004 04:08:36 +0000 (04:08 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Mon, 19 Apr 2004 04:08:36 +0000 (04:08 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@89 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/ClassPool.java
src/main/javassist/CtClassType.java
src/main/javassist/bytecode/ClassFile.java

index 52909cd202877e5746e4d7ca5732ba0f46e3334c..8139ac5d6388e09b46ba91ed3282fba54101779c 100644 (file)
@@ -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();
index 44481553c8114cf6be1eff431e752e66b44eaa4f..c1594c41ccbc5a6020f8c79cefe3289f7051bdad 100644 (file)
@@ -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;
         }
index 9e759b0d58177bf5493b7136242cb850b0603235..65e1392e91a939b566a00ed1d54184e88416aaec 100644 (file)
@@ -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) {