summaryrefslogtreecommitdiff
path: root/src/asm/scala/tools/asm/MethodWriter.java
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-12-12 11:40:29 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-12-12 11:40:29 -0800
commit5cbb5a7f626aa7bd305ad8ce2ad96ee742315536 (patch)
tree92cd1426843ef3274b46076dc46164e62d012fec /src/asm/scala/tools/asm/MethodWriter.java
parent2aa9da578e03987427a2d932becc75fc0f016d8b (diff)
parent3fa2c97853de2110227f50982187b4377b8772bc (diff)
downloadscala-2a233bba88f13fe8eb5f5625f3a0135143aa1e45.tar.gz
scala-2a233bba88f13fe8eb5f5625f3a0135143aa1e45.tar.bz2
scala-2a233bba88f13fe8eb5f5625f3a0135143aa1e45.zip
Merge pull request #3268 from adriaanm/support-3021v2.10.4-RC1
Report error on code size overflow, log method name.
Diffstat (limited to 'src/asm/scala/tools/asm/MethodWriter.java')
-rw-r--r--src/asm/scala/tools/asm/MethodWriter.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/asm/scala/tools/asm/MethodWriter.java b/src/asm/scala/tools/asm/MethodWriter.java
index 321bacb6fc..887cb28c6f 100644
--- a/src/asm/scala/tools/asm/MethodWriter.java
+++ b/src/asm/scala/tools/asm/MethodWriter.java
@@ -1853,7 +1853,12 @@ class MethodWriter extends MethodVisitor {
int size = 8;
if (code.length > 0) {
if (code.length > 65536) {
- throw new RuntimeException("Method code too large!");
+ String nameString = "";
+ int i = 0;
+ // find item that corresponds to the index of our name
+ while (i < cw.items.length && (cw.items[i] == null || cw.items[i].index != name)) i++;
+ if (cw.items[i] != null) nameString = cw.items[i].strVal1 +"'s ";
+ throw new RuntimeException("Method "+ nameString +"code too large!");
}
cw.newUTF8("Code");
size += 18 + code.length + 8 * handlerCount;