From 728bce52cea3422318c150bae42b4ea6260f8fc7 Mon Sep 17 00:00:00 2001
From: Tomas Stupka <tomas.stupka@oracle.com>
Date: Thu, 12 Oct 2017 17:42:47 +0200
Subject: [PATCH] fixed incorrect return in CopyMostAttrib, LockBinding and
 UnlockBinding nodes

---
 .../r/ffi/impl/nodes/AttributesAccessNodes.java     |  4 ++--
 .../oracle/truffle/r/ffi/impl/nodes/EnvNodes.java   | 13 ++++++-------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/AttributesAccessNodes.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/AttributesAccessNodes.java
index 1ce91a921d..7bcfe69ff7 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/AttributesAccessNodes.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/AttributesAccessNodes.java
@@ -124,13 +124,13 @@ public final class AttributesAccessNodes {
         @Child protected CopyOfRegAttributesNode copyRegAttributes;
 
         @Specialization
-        public Object doList(RAttributeStorage x, RAttributeStorage y) {
+        public int doRAttributeStorage(RAttributeStorage x, RAttributeStorage y) {
             if (copyRegAttributes == null) {
                 CompilerDirectives.transferToInterpreterAndInvalidate();
                 copyRegAttributes = CopyOfRegAttributesNode.create();
             }
             copyRegAttributes.execute(x, y);
-            return RNull.instance;
+            return 0;
         }
 
         @Fallback
diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/EnvNodes.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/EnvNodes.java
index 57441100e9..4dc716fc42 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/EnvNodes.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nodes/EnvNodes.java
@@ -27,7 +27,6 @@ import com.oracle.truffle.api.dsl.Specialization;
 import com.oracle.truffle.api.dsl.TypeSystemReference;
 import static com.oracle.truffle.r.ffi.impl.common.RFFIUtils.guaranteeInstanceOf;
 import com.oracle.truffle.r.runtime.RInternalError;
-import com.oracle.truffle.r.runtime.data.RNull;
 import com.oracle.truffle.r.runtime.data.RSymbol;
 import com.oracle.truffle.r.runtime.data.RTypes;
 import com.oracle.truffle.r.runtime.env.REnvironment;
@@ -38,14 +37,14 @@ public class EnvNodes {
     public abstract static class LockBindingNode extends FFIUpCallNode.Arg2 {
 
         @Specialization
-        Object lock(RSymbol sym, REnvironment env) {
+        int lock(RSymbol sym, REnvironment env) {
             // TODO copied from EnvFunctions.LockBinding
             env.lockBinding(sym.getName());
-            return RNull.instance;
+            return 0;
         }
 
         @Fallback
-        Object lock(Object sym, Object env) {
+        int lock(Object sym, Object env) {
             guaranteeInstanceOf(sym, RSymbol.class);
             guaranteeInstanceOf(env, REnvironment.class);
             throw RInternalError.shouldNotReachHere();
@@ -60,14 +59,14 @@ public class EnvNodes {
     public abstract static class UnlockBindingNode extends FFIUpCallNode.Arg2 {
 
         @Specialization
-        Object unlock(RSymbol sym, REnvironment env) {
+        int unlock(RSymbol sym, REnvironment env) {
             // TODO copied from EnvFunctions.LockBinding
             env.unlockBinding(sym.getName());
-            return RNull.instance;
+            return 0;
         }
 
         @Fallback
-        Object unlock(Object sym, Object env) {
+        int unlock(Object sym, Object env) {
             guaranteeInstanceOf(sym, RSymbol.class);
             guaranteeInstanceOf(env, REnvironment.class);
             throw RInternalError.shouldNotReachHere();
-- 
GitLab