From 937167f3736ebd0cb62185a1fc16855c10a7b736 Mon Sep 17 00:00:00 2001 From: Eric Bruneton Date: Thu, 21 Sep 2017 09:50:14 +0200 Subject: [PATCH] AALOAD should give null when the input array is null. --- src/org/objectweb/asm/Frame.java | 2 +- src/org/objectweb/asm/commons/AnalyzerAdapter.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/org/objectweb/asm/Frame.java b/src/org/objectweb/asm/Frame.java index 57aa65661..4054656a9 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 5a85faecb..7821b50e3 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"); } -- GitLab