diff --git a/src/org/objectweb/asm/Frame.java b/src/org/objectweb/asm/Frame.java index 57aa65661c0daa810fb37ff4afa19ffe8cf76507..4054656a9833d59813691e85be6358be540c7d7f 100644 --- a/src/org/objectweb/asm/Frame.java +++ b/src/org/objectweb/asm/Frame.java @@ -1056,7 +1056,7 @@ class Frame { case Opcodes.AALOAD: pop(1); t1 = pop(); - push(ELEMENT_OF + t1); + push(t1 == NULL ? t1 : ELEMENT_OF + t1); break; case Opcodes.ISTORE: case Opcodes.FSTORE: diff --git a/src/org/objectweb/asm/commons/AnalyzerAdapter.java b/src/org/objectweb/asm/commons/AnalyzerAdapter.java index 5a85faecba41618f217b8b0d6c18df08b7903464..7821b50e31bbc60cf02e6aa61b3c1ee2c621815d 100644 --- a/src/org/objectweb/asm/commons/AnalyzerAdapter.java +++ b/src/org/objectweb/asm/commons/AnalyzerAdapter.java @@ -661,6 +661,8 @@ public class AnalyzerAdapter extends MethodVisitor { t1 = pop(); if (t1 instanceof String) { pushDesc(((String) t1).substring(1)); + } else if (t1 == Opcodes.NULL) { + push(t1); } else { push("java/lang/Object"); }