X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fcore%2FOptimizeCore.java;fp=src%2Forg%2Fibex%2Fcore%2FOptimizeCore.java;h=226a0f9324148d59d3a665fc439d017b8206f271;hp=0000000000000000000000000000000000000000;hb=b0554ff79ee5f166eab7c660e5a872806df68271;hpb=fb755566b079246c6b895fbef6d7c7a2a854d290 diff --git a/src/org/ibex/core/OptimizeCore.java b/src/org/ibex/core/OptimizeCore.java new file mode 100644 index 0000000..226a0f9 --- /dev/null +++ b/src/org/ibex/core/OptimizeCore.java @@ -0,0 +1,34 @@ +package org.ibex.core; +import org.ibex.classgen.*; +import java.io.*; +import java.util.*; +import java.util.zip.*; + +public class OptimizeCore { + public static void main(String[] s) throws Exception { + File outf = new File(s[0] + "-"); + File inf = new File(s[0]); + ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outf)); + ZipInputStream zis = new ZipInputStream(new FileInputStream(inf)); + for(;;) { + ZipEntry ze = zis.getNextEntry(); + if (ze==null) break; + out.putNextEntry(ze); + String name = ze.getName(); + if (!name.endsWith(".class")) { + byte b[] = new byte[1024]; + for(;;) { + int numread = zis.read(b, 0, b.length); + if (numread==-1) break; + out.write(b, 0, numread); + } + continue; + } + System.out.println("updating " + name.substring(0, name.length()-6).replace('$','.').replace('/','.')); + ClassFile cf = new ClassFile(new DataInputStream(zis)); + cf.dump(out); + } + out.close(); + outf.renameTo(inf); + } +}