totally working again
[org.ibex.core.git] / src / org / ibex / util / BytecodePruner.java
index 459bcca..4514cb4 100644 (file)
@@ -54,8 +54,8 @@ public class BytecodePruner {
         int start = 1;
         if (s.length >= 3 && s[1].equals("-o")) { outdir = s[2]; start += 2; }
         repo = SyntheticRepository.getInstance(new ClassPath(s[0]));
-        BytecodePruner bcp = new BytecodePruner();
 
+        BytecodePruner bcp = new BytecodePruner();
         for(int i=start; i<s.length; i++) {
             try {
                 if (s[i].endsWith(".class")) {
@@ -73,37 +73,36 @@ public class BytecodePruner {
                 System.out.println("WARNING: couldn't load class for " + s[i]);
             }
         }
+
         System.out.println("\n\n======================================================================\n");
 
         // we call start(), but the VM calls run()...
         bcp.loadMethod("java.lang.Thread.run");
-        bcp.loadMethod("java.util.IdentityHashMap.put");
-
         bcp.loadAllMethods("java.lang.SecurityContext");
         bcp.visitJavaClass(repo.loadClass("java.awt.AWTPermission"));
+        bcp.visitJavaClass(repo.loadClass("gnu.classpath.Configuration"));
+        bcp.loadAllMethods("java.lang.ThreadDeath");
+
+        bcp.loadAllMethods("java.util.Hashtable$HashIterator");
+        bcp.loadMethod("java.util.SimpleTimeZone.useDaylightTime");
+        /*
         bcp.loadAllMethods("java.lang.Throwable");
         bcp.loadAllMethods("java.io.PrintStream");
         bcp.loadAllMethods("java.util.PropertyPermission");
-        bcp.loadAllMethods("java.lang.ThreadDeath");
-        bcp.loadAllMethods("gnu.gcj.runtime.StringBuffer");
         bcp.loadAllMethods("java.security.cert.Certificate");
         bcp.loadAllMethods("java.security.cert.CertificateEncodingException");
-
-        bcp.loadMethod("java.util.SimpleTimeZone.useDaylightTime");
         bcp.loadMethod("java.util.TimeZone.getAvailableIDs");
         bcp.loadMethod("java.util.TimeZone.getDefaultTimeZoneId");
-        bcp.loadMethod("java.util.Collections$SynchronizedIterator.hasNext");
-        bcp.loadAllMethods("java.util.Hashtable$HashIterator");
+        bcp.loadAllMethods("gnu.gcj.runtime.StringBuffer");
         bcp.loadAllMethods("gnu.gcj.runtime.VMClassLoader");
-
-        bcp.visitJavaClass(repo.loadClass("java.util.Stack"));
-        bcp.visitJavaClass(repo.loadClass("gnu.classpath.Configuration"));
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.runtime.JNIWeakRef"));
-
+        */
+        /*
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.protocol.http.Handler"));
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.protocol.file.Handler"));
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.protocol.jar.Handler"));
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.protocol.core.Handler"));
+        */
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.runtime.FinalizerThread"));
         bcp.visitJavaClass(repo.loadClass("gnu.gcj.runtime.FirstThread"));
 
@@ -373,6 +372,9 @@ public class BytecodePruner {
             ((HashSet)subclasses.get(interfaces[i])).add(clazz);
         }
 
+        if (clazz.getClassName().startsWith("org.ibex."))
+            loadAllMethods(clazz.getClassName());
+
         for(JavaClass sup = superclass; sup != null; sup = sup.getSuperClass()) {
             visitJavaClass(sup);
             remarkMethods(sup, clazz, cpg);