diff options
author | Volodymyr Vysotskyi <vvovyk@gmail.com> | 2019-03-10 13:57:03 +0200 |
---|---|---|
committer | Sorabh Hamirwasia <sorabh@apache.org> | 2019-03-14 15:36:11 -0700 |
commit | 5aa38a51d90998234b4ca46434ce225df72addc5 (patch) | |
tree | 46c8777ef8cd139b7f285b8df7cbed7d4cb4cb85 /exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java | |
parent | e7f0bbf1f45b0d39d3796be81207aecd716d6aae (diff) |
DRILL-2326: Fix scalar replacement for the case when static method which does not return values is called
- Fix check for return function value to handle the case when created object is returned without assigning it to the local variable
closes #1687
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java index 13063c8a5..a34854dbc 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java @@ -83,6 +83,13 @@ public class ReplacingInterpreter extends BasicInterpreter { } @Override + public void returnOperation(AbstractInsnNode insn, BasicValue value, BasicValue expected) { + if (value instanceof ReplacingBasicValue) { + ((ReplacingBasicValue) value).markFunctionReturn(); + } + } + + @Override public BasicValue unaryOperation(final AbstractInsnNode insn, final BasicValue value) throws AnalyzerException { /* |