Good news everyone, I've just managed to decode a class file with its constituent bytecode out to a Jar. There's a few bugs (it doesn't calculate the max stack) and the byteccode is replaced with 'return' -- but that's only because pack200 does some extra mangling on the bytecode (e.g. 'super()' is normally 2 bytes, but it's so common that there's a special 1 byte marker for it).
But this is one of the last major hurdles before being able to have both abstract/non-abstract classes/interfaces unpacked. If only I was anywhere near finished ... there's a number of attributes that I need to handle still (e.g. debugging attributes like line number tables) as well as the generic attribute handling mechanism. With any luck, I'll be able to take a simple 'HelloWorld' Java file, pack it with Sun's pack200 and then unpack and run it with Harmony's pack200 implementation for my EclipseCon presentation in a couple of weeks :-) http://www.eclipsecon.org/2007/index.php?page=sub/&id=3908 I'll get the code into a bit of a better state and then send in another patch. Sorry it's taken me a bit longer than I thought -- I was putting together a presentation for JSig on OSGi using NetBeans and Swing apps -- the presentation/demos are available at http://www.eclipsezone.com/files/jsig/ if anyone's tangentially interested ... Alex.
