You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sj...@apache.org on 2008/06/04 11:49:51 UTC

svn commit: r663043 - /harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java

Author: sjanuary
Date: Wed Jun  4 02:49:50 2008
New Revision: 663043

URL: http://svn.apache.org/viewvc?rev=663043&view=rev
Log:
Pack200 - fixed Segment to not use BCEL classes later than 5.2

Modified:
    harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java

Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java?rev=663043&r1=663042&r2=663043&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java Wed Jun  4 02:49:50 2008
@@ -21,9 +21,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.bcel.classfile.AnnotationDefault;
-import org.apache.bcel.classfile.AnnotationEntry;
-import org.apache.bcel.classfile.Annotations;
 import org.apache.bcel.classfile.Code;
 import org.apache.bcel.classfile.CodeException;
 import org.apache.bcel.classfile.ConstantClass;
@@ -41,7 +38,6 @@
 import org.apache.bcel.classfile.ConstantValue;
 import org.apache.bcel.classfile.Deprecated;
 import org.apache.bcel.classfile.DescendingVisitor;
-import org.apache.bcel.classfile.EnclosingMethod;
 import org.apache.bcel.classfile.ExceptionTable;
 import org.apache.bcel.classfile.Field;
 import org.apache.bcel.classfile.InnerClass;
@@ -51,15 +47,11 @@
 import org.apache.bcel.classfile.LineNumberTable;
 import org.apache.bcel.classfile.LocalVariable;
 import org.apache.bcel.classfile.LocalVariableTable;
-import org.apache.bcel.classfile.LocalVariableTypeTable;
 import org.apache.bcel.classfile.Method;
-import org.apache.bcel.classfile.ParameterAnnotations;
 import org.apache.bcel.classfile.Signature;
 import org.apache.bcel.classfile.SourceFile;
 import org.apache.bcel.classfile.StackMap;
 import org.apache.bcel.classfile.StackMapEntry;
-import org.apache.bcel.classfile.StackMapTable;
-import org.apache.bcel.classfile.StackMapTableEntry;
 import org.apache.bcel.classfile.Synthetic;
 import org.apache.bcel.classfile.Unknown;
 import org.apache.bcel.classfile.Visitor;
@@ -67,7 +59,7 @@
 
 public class Segment implements Visitor {
 
-    private BandSet segmentHeader;
+    private SegmentHeader segmentHeader;
     private CpBands cpBands;
     private AttributeDefinitionBands attributeDefinitionBands;
     private IcBands icBands;
@@ -75,16 +67,22 @@
     private BcBands bcBands;
     private FileBands fileBands;
 
-    public void pack(List classes, OutputStream out) throws IOException, Pack200Exception {
+    public void pack(List classes, List files, OutputStream out) throws IOException, Pack200Exception {
         segmentHeader = new SegmentHeader();
-        cpBands = new CpBands();
-        attributeDefinitionBands = new AttributeDefinitionBands();
-        icBands = new IcBands();
+        cpBands = new CpBands(segmentHeader);
+        attributeDefinitionBands = new AttributeDefinitionBands(segmentHeader);
+        icBands = new IcBands(segmentHeader);
         classBands = new ClassBands(cpBands, classes.size());
         bcBands = new BcBands();
-        fileBands = new FileBands();
+        fileBands = new FileBands(segmentHeader, files);
 
         processClasses(classes);
+        
+        cpBands.finaliseBands();
+        attributeDefinitionBands.finaliseBands();
+        icBands.finaliseBands();
+        classBands.finaliseBands();
+        bcBands.finaliseBands();
 
         segmentHeader.pack(out);
         cpBands.pack(out);
@@ -100,22 +98,6 @@
             JavaClass javaClass = (JavaClass) iterator.next();
             new DescendingVisitor(javaClass, this).visit();
         }
-        cpBands.sortPool();
-    }
-
-    public void visitAnnotation(Annotations obj) {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void visitAnnotationDefault(AnnotationDefault obj) {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void visitAnnotationEntry(AnnotationEntry obj) {
-        // TODO Auto-generated method stub
-
     }
 
     public void visitCode(Code obj) {
@@ -182,17 +164,10 @@
 
     public void visitDeprecated(Deprecated obj) {
         // TODO Auto-generated method stub
-
-    }
-
-    public void visitEnclosingMethod(EnclosingMethod obj) {
-        // TODO Auto-generated method stub
-
     }
 
     public void visitExceptionTable(ExceptionTable obj) {
         // TODO Auto-generated method stub
-
     }
 
     public void visitField(Field obj) {
@@ -210,6 +185,8 @@
 
     public void visitJavaClass(JavaClass obj) {
         classBands.addClass(obj);
+        segmentHeader.addMinorVersion(obj.getMinor());
+        segmentHeader.addMajorVersion(obj.getMajor());
     }
 
     public void visitLineNumber(LineNumber obj) {
@@ -231,20 +208,10 @@
 
     }
 
-    public void visitLocalVariableTypeTable(LocalVariableTypeTable obj) {
-        // TODO Auto-generated method stub
-
-    }
-
     public void visitMethod(Method obj) {
         cpBands.addDesc(obj.getName(), obj.getSignature());
     }
 
-    public void visitParameterAnnotation(ParameterAnnotations obj) {
-        // TODO Auto-generated method stub
-
-    }
-
     public void visitSignature(Signature obj) {
 
     }
@@ -264,16 +231,6 @@
 
     }
 
-    public void visitStackMapTable(StackMapTable obj) {
-        // TODO Auto-generated method stub
-
-    }
-
-    public void visitStackMapTableEntry(StackMapTableEntry obj) {
-        // TODO Auto-generated method stub
-
-    }
-
     public void visitSynthetic(Synthetic obj) {
         // TODO Auto-generated method stub