==== Patch <goto_w> level 1
Source: [No source]
Target: 737f8f2c-97f8-0310-ac9b-cfac8cc1a2f5:/eng/third-party/janino/trunk:72828
        (svn+ssh://svn.streambase.com/repos/sb)
Log:
 r74899@spiceweasel (orig r73074):  fowles | 2008-05-29 13:42:22 -0400
 mark wide goto as being an op with no fallthrough
 add a test
 

=== tests/src/EvaluatorTests.java
==================================================================
--- tests/src/EvaluatorTests.java	(revision 72828)
+++ tests/src/EvaluatorTests.java	(patch goto_w level 1)
@@ -74,6 +74,7 @@
 //        s.addTest(new EvaluatorTests("testStaticInitAccessProtected"));
         s.addTest(new EvaluatorTests("testDivByZero"));
         s.addTest(new EvaluatorTests("test32kBranchLimit"));
+        s.addTest(new EvaluatorTests("testHugeIntArray"));
         return s;
     }
 
@@ -494,4 +495,36 @@
         }
         
     }
+    
+    
+    public void testHugeIntArray() throws Exception {
+        String preamble =
+            "package test;\n" +
+            "public class Test {\n" +
+            "    public int[] run() {\n" +
+            "        return 1.0 > 2.0 ? null : new int[] {";
+        String middle = " 123,";
+        String postamble = 
+            "        };\n" +
+            "    }\n" +
+            "}";
+        
+        int[] tests = new int[] { 1, 10, 8192};
+        for(int i = 0; i < tests.length; ++i) {
+            int repititions = tests[i];
+            
+            StringBuilder sb = new StringBuilder();
+            StringBuilder expected = new StringBuilder();
+            sb.append(preamble);
+            for(int j = 0; j < repititions; ++j) {
+                sb.append(middle);
+                expected.append(middle);
+            }
+            sb.append(postamble);
+            
+            SimpleCompiler sc = new SimpleCompiler();
+            sc.cook(sb.toString());
+        }
+        
+    }
 }
=== src/org/codehaus/janino/Opcode.java
==================================================================
--- src/org/codehaus/janino/Opcode.java	(revision 72828)
+++ src/org/codehaus/janino/Opcode.java	(patch goto_w level 1)
@@ -500,7 +500,7 @@
         /*MULTIANEWARRAY*/  Opcode.SD_MULTIANEWARRAY | Opcode.OP1_CP2 | Opcode.OP2_SB,
         /*IFNULL*/          Opcode.SD_M1 | Opcode.OP1_BO2,
         /*IFNONNULL*/       Opcode.SD_M1 | Opcode.OP1_BO2,
-/*200*/ /*GOTO_W*/          Opcode.SD_P0 | Opcode.OP1_BO4,
+/*200*/ /*GOTO_W*/          Opcode.SD_P0 | Opcode.OP1_BO4 | Opcode.NO_FALLTHROUGH,
         /*JSR_W*/           Opcode.SD_P1 | Opcode.OP1_BO4,
         Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE,
         Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE, Opcode.INVALID_OPCODE,

==== BEGIN SVK PATCH BLOCK ====
Version: svk v2.0.2 (linux)

eJyFlc9v3EQUx31EERUnJA49DJErJYLNzozHP2ajLmlFS1CrBtEEDilajT3Pu24d2xqPdxPqSjXi
2DtIlZD4ceCAEFeO/FtwYWxnk4Zu2ZXlH/Pe9/Pe7Mx7c1cd7u6RejzGtU1w/fCLe6PRZ0JHsxvm
y/ZqkInOle3WKcwhtZ06zac2qzNxAsaqhZqCHo+JEQe9+E4nWEJYywiFzrPS5h1sohWATWq+ZwLs
Oe01sQmvSzCmDjdRME/KJM9MVJ8FnBsXIyAGkBeQTVSe69bkYJ/t0VaN6yjNS5i0/Bbptv7UJqwX
yERBZJI6MyoNpS472pLQObsrnJ26VNEV1y5V9zzYpaNxMXn0IGcFiPdRhz2OrsfRCxxbTjpOUrDp
K6ThnblIK/PPqsN2aOexmIsu/lq609M7qyiK9Gyi4VRLSLXoIjq09gPJBQMvpjjCAIxJ7vpMSB76
EQcONmPELPcDy2p+dZs/Tsk3X1svwfrdal4cv/zyN6t5t/nhreeNbcXNj+9/azVW89PHz4+s5lrz
86MXVuM1v9z7rtwRUra5b2WwQFdns7XZznO/msKnmb6llDhD5ndt4/JeVGGaRGieJxL91/f4K6Sq
bGsbPX2UbaIPesHyt7l8UaArlSGyg9EYUXP/CGVVmqIRavNJMm0wTzd3L9UPtUqyKTpJpEwB3TQk
Qp0PV3gUeanFSdg5vSH4s4BwmqQSFCpD49aG7NW3q254a3v3qvSKFcFpYdYT5OvS1ndpfXaJ6N/M
gLn22KtF0+2s83UHcAXGgvuUEfBwRKVPIQwIUA4uCdjFvvRWbHO/rZdhrqZdPa3dhu4FzF8BI96S
NoxyCTNRlV3YtVjvAhuswFLnNezwsciSLO/yWEv3L+j8SmU67pu4w4OiHVnWZ7A+RvC/9cnbdXJo
IEGGpkrBdwUPI+mFBAtwpYxxTHyb8fPy/HvR/PPO2+9ZzZ/H1vfWX9fNE9XoPKcHB5O7t+7fP9z/
/ODok/2V26ILh+NQMhqGLnjM5yxwhUeIL5hDhC945HdNkjhejVTfsMsiiWABooQUbeUqmRpDO+nt
EUJxvkihNElQjIMBdgeUI+KMGB1RigaYYbyBToR6ghaJBDTNdY5EiUJoK0tkKC+MQc9QlqNYpKme
qbyazjaQaSZIdK1gA22YQ6cVThbjMa1tSvuj6bA7XkajoyyZgypFesOrzVlWCD0zzd6cOuajqhLZ
9tkhZNOhniVKDgqh9NlyNbXpLE/aNaQBDWwzZd/x4yCm0YCb5wA7BA9ExMNBFIsoiCIiaOz+Cx3+
Wbc=
==== END SVK PATCH BLOCK ====

