aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java
diff options
context:
space:
mode:
authorVolodymyr Vysotskyi <vvovyk@gmail.com>2019-03-10 13:57:03 +0200
committerSorabh Hamirwasia <sorabh@apache.org>2019-03-14 15:36:11 -0700
commit5aa38a51d90998234b4ca46434ce225df72addc5 (patch)
tree46c8777ef8cd139b7f285b8df7cbed7d4cb4cb85 /exec/java-exec/src/main/java/org/apache/drill/exec/compile/bytecode/ReplacingInterpreter.java
parente7f0bbf1f45b0d39d3796be81207aecd716d6aae (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.java7
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 {
/*