diff options
author | Andy Clement <aclement@gopivotal.com> | 2014-05-23 13:25:57 -0700 |
---|---|---|
committer | Andy Clement <aclement@gopivotal.com> | 2014-05-23 13:25:57 -0700 |
commit | 6e5c19b7529d637084564d155d1515f6c4058e05 (patch) | |
tree | fc994bcac1cd080ae0e92d064036352edbb771a7 /bcel-builder | |
parent | 2334f629a16a1623a222bc12de10a85ff9abaa04 (diff) | |
download | aspectj-6e5c19b7529d637084564d155d1515f6c4058e05.tar.gz aspectj-6e5c19b7529d637084564d155d1515f6c4058e05.zip |
fix for 435446: ensure size of invokedynamic correct
Diffstat (limited to 'bcel-builder')
-rw-r--r-- | bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java b/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java index 2196df3e7..9e19c417d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java @@ -337,20 +337,22 @@ public class ConstantsInitializer { | Constants.INDEXED; Constants.instExcs[Constants.INVOKEVIRTUAL] = ExceptionConstants.EXCS_INTERFACE_METHOD_RESOLUTION_INVOKESPECIAL_INVOKEVIRTUAL; + //@formatter:off char[] lengths = // . = varies in length, / = undefined ("1111111111111111" + // nop > dconst_1 - "2323322222111111" + // bipush > lload_1 - "1111111111111111" + // lload_2 > laload - "1111112222211111" + // faload > lstore_0 - "1111111111111111" + // lstore_1 > iastore - "1111111111111111" + // lastore > swap - "1111111111111111" + // iadd > ddiv - "1111111111111111" + // irem > land - "1111311111111111" + // ior > d2l - "1111111113333333" + // d2f > if_icmpeq - "3333333332..1111" + // if_icmpne > dreturn - "1133333335/32311" + // areturn > athrow - "3311.433551/////").toCharArray(); // checkcast > + "2323322222111111" + // bipush > lload_1 + "1111111111111111" + // lload_2 > laload + "1111112222211111" + // faload > lstore_0 + "1111111111111111" + // lstore_1 > iastore + "1111111111111111" + // lastore > swap + "1111111111111111" + // iadd > ddiv + "1111111111111111" + // irem > land + "1111311111111111" + // ior > d2l + "1111111113333333" + // d2f > if_icmpeq + "3333333332..1111" + // if_icmpne > dreturn + "1133333335532311" + // areturn > athrow + "3311.433551/////").toCharArray(); // checkcast > + //@formatter:on int count = 0; for (; count < lengths.length; count++) { Constants.iLen[count] = (byte) (lengths[count] - 48); @@ -374,7 +376,7 @@ public class ConstantsInitializer { "1212021211212212" + // ior > d2l "1111111110000000" + // d2f > if_icmpeq "0000000010000000" + // if_icmpne > dreturn - "00.0.0..../11111" + // areturn > athrow + "00.0.0.....11111" + // areturn > athrow "11000100010/").toCharArray(); // checkcast > count = 0; for (; count < producesOnStack.length; count++) { |