Guardsquare/proguard

ArrayIndexOutOfBoundsException

Opened this issue · 3 comments

I get an issue when running Proguard. Attached log:

ProGuard, version 7.5.0
Unexpected error
java.lang.ArrayIndexOutOfBoundsException: -1
at proguard.evaluation.Stack.getTop(Stack.java:181) ~[proguard.jar:7.5.0]
at proguard.classfile.util.ArrayInitializationMatcher.matchesArrayInitialization(ArrayInitializationMatcher.java:98) ~[proguard.jar:7.5.0]
at proguard.classfile.util.ArrayInitializationReplacer.visitAnyInstruction(ArrayInitializationReplacer.java:105) ~[proguard.jar:7.5.0]
at proguard.classfile.instruction.visitor.InstructionVisitor.visitSimpleInstruction(InstructionVisitor.java:50) ~[proguard.jar:7.5.0]
at proguard.classfile.instruction.SimpleInstruction.accept(SimpleInstruction.java:255) ~[proguard.jar:7.5.0]
at proguard.classfile.attribute.CodeAttribute.instructionsAccept(CodeAttribute.java:136) ~[proguard.jar:7.5.0]
at proguard.classfile.attribute.CodeAttribute.instructionsAccept(CodeAttribute.java:111) ~[proguard.jar:7.5.0]
at proguard.classfile.util.ArrayInitializationReplacer.visitCodeAttribute(ArrayInitializationReplacer.java:86) ~[proguard.jar:7.5.0]
at proguard.classfile.util.ArrayInitializationReplacer$ArrayInitializationFilter.visitCodeAttribute(ArrayInitializationReplacer.java:162) ~[proguard.jar:7.5.0]
at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:105) ~[proguard.jar:7.5.0]
at proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:118) ~[proguard.jar:7.5.0]
at proguard.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:77) ~[proguard.jar:7.5.0]
at proguard.classfile.visitor.MemberVisitor.visitProgramMethod(MemberVisitor.java:47) ~[proguard.jar:7.5.0]
at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:113) ~[proguard.jar:7.5.0]
at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:589) ~[proguard.jar:7.5.0]
at proguard.classfile.util.ArrayInitializationReplacer.visitProgramClass(ArrayInitializationReplacer.java:70) ~[proguard.jar:7.5.0]
at proguard.classfile.ProgramClass.accept(ProgramClass.java:491) ~[proguard.jar:7.5.0]
at proguard.classfile.ClassPool.classesAccept(ClassPool.java:214) ~[proguard.jar:7.5.0]
at proguard.classfile.pass.PrimitiveArrayConstantIntroducer.execute(PrimitiveArrayConstantIntroducer.java:22) ~[proguard.jar:7.5.0]
at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard.jar:7.5.0]
at proguard.ProGuard.introducePrimitiveArrayConstants(ProGuard.java:394) ~[proguard.jar:7.5.0]
at proguard.ProGuard.execute(ProGuard.java:163) ~[proguard.jar:7.5.0]
at proguard.ProGuard.main(ProGuard.java:648) ~[proguard.jar:7.5.0]

HI @jacob-lerenius ! Can you provide a reproducing sample?

Unfortunately I'm not allowed to upload the project. I thought it may be some way to handle if the index is -1 anyways. I can help testing a possible solution if it helps. Sorry

Unfortunately without a reproducing sample it's not obvious what the issue is. Handling the -1 case in that location would be handling a symptom of the problem rather than fixing the cause.