AppleCore

AppleCore

56M Downloads

ASM does not compute stackmap frames, causing bytecode errors in all Java 7 and 8 runtimes.

williewillus opened this issue ยท 9 comments

commented

AppleCore transforms all IGrowables it can find in the class path, but does it without computing frames (https://github.com/squeek502/ASMHelper/blob/master/raw/squeek/asmhelper/ASMHelper.java#L123)

This causes invalid bytecode crashes in Java 7 and 8: williewillus/Botania#80

Discussion with @diesieben07 in #minecraftforge about it: http://pastebin.com/wiNJMWpJ

commented

Ugh, I was worried about this. I don't compute frames and I get this; I compute them and I get even weirder crashes in ClassWriter.getCommonSuperClass().

Appreciate the report. Not sure what the solution is at this point.

commented

Wait, the crash report from williewillus/Botania#80 is using an old development version of AppleCore that was known to have this issue. Please have that user update to the release version of 1.3.0, where this should have been fixed: https://github.com/squeek502/AppleCore/releases/tag/v1.3.0

commented

My solution to this was to have a custom ClassWriter implementation that doesn't load classes but instead uses ASM itself to find the common superclass. The ClassWriter is here, the ClassInfo class structure is here.

commented

Appreciate the example, @diesieben07. I know CodeChickenLib does something similar. Looks like I'll have to write something as robust if this is still an issue (though I probably should anyway).

commented

I had this issue with the same dev version, got fixed in 1.3.0 tho :)

commented

williewillus/Botania#80 got closed, so I assume this can get closed too.

commented

Still seems to be an issue, actually. From @VikeStep: http://pastebin.com/rXC1tCAs

commented

That is 1.7.10 tho.

commented

The problem wouldn't be different between MC versions. I updated the 1.7.10 version, too.