From c23b07a2003fcad7e25d22e28c742f0ca72786a5 Mon Sep 17 00:00:00 2001
From: Tomas Stupka <tomas.stupka@oracle.com>
Date: Fri, 13 Oct 2017 12:07:56 +0200
Subject: [PATCH] made no-return functions void instead of letting them return
 int

---
 .../ffi/impl/common/JavaUpCallsRFFIImpl.java  | 87 ++++++++-----------
 .../ffi/impl/nodes/AttributesAccessNodes.java |  4 +-
 .../truffle/r/ffi/impl/nodes/EnvNodes.java    | 12 +--
 .../r/ffi/impl/upcalls/StdUpCallsRFFI.java    | 58 ++++++-------
 4 files changed, 69 insertions(+), 92 deletions(-)

diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
index f7852a6969..7d5b19c799 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java
@@ -145,7 +145,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     // Checkstyle: stop method name check
-
     @Override
     public RIntVector Rf_ScalarInteger(int value) {
         return RDataFactory.createIntVectorFromScalar(value);
@@ -212,7 +211,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int Rf_defineVar(Object symbolArg, Object value, Object envArg) {
+    public void Rf_defineVar(Object symbolArg, Object value, Object envArg) {
         REnvironment env = (REnvironment) envArg;
         RSymbol name = (RSymbol) symbolArg;
         try {
@@ -220,7 +219,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
         } catch (PutException ex) {
             throw RError.error(RError.SHOW_CALLER2, ex);
         }
-        return 0;
     }
 
     @Override
@@ -310,7 +308,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public Object Rf_setAttrib(Object obj, Object name, Object val) {
+    public void Rf_setAttrib(Object obj, Object name, Object val) {
         if (obj instanceof RAttributable) {
             RAttributable attrObj = (RAttributable) obj;
             String nameAsString;
@@ -335,7 +333,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
         } else {
             throw RInternalError.shouldNotReachHere();
         }
-        return val;
     }
 
     @TruffleBoundary
@@ -413,30 +410,26 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int Rf_error(String msg) {
+    public void Rf_error(String msg) {
         RError.error(RError.SHOW_CALLER, RError.Message.GENERIC, msg);
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int Rf_warning(String msg) {
+    public void Rf_warning(String msg) {
         RError.warning(RError.SHOW_CALLER, RError.Message.GENERIC, msg);
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int Rf_warningcall(Object call, String msg) {
+    public void Rf_warningcall(Object call, String msg) {
         RErrorHandling.warningcallRFFI(call, msg);
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int Rf_errorcall(Object call, String msg) {
+    public void Rf_errorcall(Object call, String msg) {
         RErrorHandling.errorcallRFFI(call, msg);
-        return 0;
     }
 
     @Override
@@ -540,7 +533,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int SET_STRING_ELT(Object x, long i, Object v) {
+    public void SET_STRING_ELT(Object x, long i, Object v) {
         RStringVector vector = guaranteeInstanceOf(x, RStringVector.class);
         CharSXPWrapper element = guaranteeInstanceOf(v, CharSXPWrapper.class);
         String value = element.getContents();
@@ -548,14 +541,12 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
             vector.setComplete(false);
         }
         vector.setElement((int) i, value);
-        return 0;
     }
 
     @Override
-    public int SET_VECTOR_ELT(Object x, long i, Object v) {
+    public void SET_VECTOR_ELT(Object x, long i, Object v) {
         RList list = guaranteeInstanceOf(x, RList.class);
         list.setElement((int) i, v);
-        return 0;
     }
 
     @Override
@@ -767,12 +758,11 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int SET_SYMVALUE(Object x, Object v) {
+    public void SET_SYMVALUE(Object x, Object v) {
         if (!(x instanceof RSymbol)) {
             throw RInternalError.shouldNotReachHere();
         }
         REnvironment.baseEnv().safePut(((RSymbol) x).getName(), v);
-        return 0;
     }
 
     @Override
@@ -784,12 +774,12 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int R_LockBinding(Object sym, Object env) {
+    public void R_LockBinding(Object sym, Object env) {
         throw implementedAsNode();
     }
 
     @Override
-    public int R_unLockBinding(Object sym, Object env) {
+    public void R_unLockBinding(Object sym, Object env) {
         throw implementedAsNode();
     }
 
@@ -878,7 +868,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int Rf_gsetVar(Object symbol, Object value, Object rho) {
+    public void Rf_gsetVar(Object symbol, Object value, Object rho) {
         guarantee(symbol instanceof RSymbol);
         REnvironment baseEnv = RContext.getInstance().stateREnvironment.getBaseEnv();
         guarantee(rho == baseEnv);
@@ -887,19 +877,17 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
         } catch (PutException e) {
             e.printStackTrace();
         }
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int DUPLICATE_ATTRIB(Object to, Object from) {
+    public void DUPLICATE_ATTRIB(Object to, Object from) {
         if (from instanceof RAttributable) {
             guaranteeInstanceOf(to, RAttributable.class);
             DynamicObject attributes = ((RAttributable) from).getAttributes();
             ((RAttributable) to).initAttributes(attributes == null ? null : RAttributesLayout.copy(attributes));
         }
         // TODO: copy OBJECT? and S4 attributes
-        return 0;
     }
 
     @Override
@@ -912,13 +900,13 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int Rf_copyListMatrix(Object t, Object s, int byrow) {
+    public void Rf_copyListMatrix(Object t, Object s, int byrow) {
         throw unimplemented();
     }
 
     @Override
     @TruffleBoundary
-    public int Rf_copyMatrix(Object t, Object s, int byRow) {
+    public void Rf_copyMatrix(Object t, Object s, int byRow) {
         int tRows = RRuntime.nrows(t);
         int tCols = RRuntime.ncols(t);
         final Object sav = RRuntime.asAbstractVector(s);
@@ -938,6 +926,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
                 };
             } else if (sav instanceof RAbstractDoubleVector) {
                 c = new ContainerItemCopier() {
+
                     private final RAbstractDoubleVector sv = (RAbstractDoubleVector) sav;
                     private final RAbstractDoubleVector tv = (RAbstractDoubleVector) t;
                     private final Object tvStore = tv.getInternalStore();
@@ -1038,7 +1027,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
         } else { // source is non-RAbstractContainer
             throw unimplemented();
         }
-        return 0;
     }
 
     /**
@@ -1047,6 +1035,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
      * target container.
      */
     interface ContainerItemCopier {
+
         void copy(int sIdx, int tIdx);
     }
 
@@ -1093,7 +1082,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int SET_RDEBUG(Object x, int v) {
+    public void SET_RDEBUG(Object x, int v) {
         REnvironment env = guaranteeInstanceOf(x, REnvironment.class);
         if (env instanceof REnvironment.Function) {
             REnvironment.Function funcEnv = (REnvironment.Function) env;
@@ -1104,7 +1093,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
                 RContext.getRRuntimeASTAccess().disableDebug(func);
             }
         }
-        return 0;
     }
 
     @Override
@@ -1117,7 +1105,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int SET_RSTEP(Object x, int v) {
+    public void SET_RSTEP(Object x, int v) {
         @SuppressWarnings("unused")
         REnvironment env = guaranteeInstanceOf(x, REnvironment.class);
         throw RInternalError.unimplemented("SET_RSTEP");
@@ -1189,9 +1177,8 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
 
     @Override
     @TruffleBoundary
-    public int R_CleanUp(int sa, int status, int runlast) {
+    public void R_CleanUp(int sa, int status, int runlast) {
         RCleanUp.stdCleanUp(SA_TYPE.values()[sa], status, runlast != 0);
-        return 0;
     }
 
     @Override
@@ -1240,36 +1227,31 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int SET_S4_OBJECT(Object x) {
+    public void SET_S4_OBJECT(Object x) {
         guaranteeInstanceOf(x, RTypedValue.class).setS4();
-        return 0;
     }
 
     @Override
-    public int UNSET_S4_OBJECT(Object x) {
+    public void UNSET_S4_OBJECT(Object x) {
         guaranteeInstanceOf(x, RTypedValue.class).unsetS4();
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int Rprintf(String message) {
+    public void Rprintf(String message) {
         RContext.getInstance().getConsole().print(message);
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int GetRNGstate() {
+    public void GetRNGstate() {
         RRNG.getRNGState();
-        return 0;
     }
 
     @Override
     @TruffleBoundary
-    public int PutRNGstate() {
+    public void PutRNGstate() {
         RRNG.putRNGState();
-        return 0;
     }
 
     @Override
@@ -1279,7 +1261,6 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     // Checkstyle: stop method name check
-
     @Override
     @TruffleBoundary
     public Object R_getGlobalFunctionContext() {
@@ -1442,24 +1423,21 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int R_SetExternalPtrAddr(Object x, long addr) {
+    public void R_SetExternalPtrAddr(Object x, long addr) {
         RExternalPtr p = guaranteeInstanceOf(x, RExternalPtr.class);
         p.setAddr(new SymbolHandle(addr));
-        return 0;
     }
 
     @Override
-    public int R_SetExternalPtrTag(Object x, Object tag) {
+    public void R_SetExternalPtrTag(Object x, Object tag) {
         RExternalPtr p = guaranteeInstanceOf(x, RExternalPtr.class);
         p.setTag(tag);
-        return 0;
     }
 
     @Override
-    public int R_SetExternalPtrProtected(Object x, Object prot) {
+    public void R_SetExternalPtrProtected(Object x, Object prot) {
         RExternalPtr p = guaranteeInstanceOf(x, RExternalPtr.class);
         p.setProt(prot);
-        return 0;
     }
 
     @Override
@@ -1681,9 +1659,11 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     private static HashMap<String, Integer> name2typeTable;
+
     static {
         name2typeTable = new HashMap<>(26);
-        name2typeTable.put("NULL", SEXPTYPE.NILSXP.code); /* real types */
+        name2typeTable.put("NULL", SEXPTYPE.NILSXP.code);
+        /* real types */
         name2typeTable.put("symbol", SEXPTYPE.SYMSXP.code);
         name2typeTable.put("pairlist", SEXPTYPE.LISTSXP.code);
         name2typeTable.put("closure", SEXPTYPE.CLOSXP.code);
@@ -1695,7 +1675,8 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
         name2typeTable.put("char", SEXPTYPE.CHARSXP.code);
         name2typeTable.put("logical", SEXPTYPE.LGLSXP.code);
         name2typeTable.put("integer", SEXPTYPE.INTSXP.code);
-        name2typeTable.put("double", SEXPTYPE.REALSXP.code); /*-  "real", for R <= 0.61.x */
+        name2typeTable.put("double", SEXPTYPE.REALSXP.code);
+        /*-  "real", for R <= 0.61.x */
         name2typeTable.put("complex", SEXPTYPE.CPLXSXP.code);
         name2typeTable.put("character", SEXPTYPE.STRSXP.code);
         name2typeTable.put("...", SEXPTYPE.DOTSXP.code);
@@ -1792,7 +1773,7 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
     }
 
     @Override
-    public int Rf_copyMostAttrib(Object x, Object y) {
+    public void Rf_copyMostAttrib(Object x, Object y) {
         throw implementedAsNode();
     }
 
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 7bcfe69ff7..7b6ef2821f 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 int doRAttributeStorage(RAttributeStorage x, RAttributeStorage y) {
+        public Void doRAttributeStorage(RAttributeStorage x, RAttributeStorage y) {
             if (copyRegAttributes == null) {
                 CompilerDirectives.transferToInterpreterAndInvalidate();
                 copyRegAttributes = CopyOfRegAttributesNode.create();
             }
             copyRegAttributes.execute(x, y);
-            return 0;
+            return null;
         }
 
         @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 4dc716fc42..e493bd7828 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
@@ -37,14 +37,14 @@ public class EnvNodes {
     public abstract static class LockBindingNode extends FFIUpCallNode.Arg2 {
 
         @Specialization
-        int lock(RSymbol sym, REnvironment env) {
+        Void lock(RSymbol sym, REnvironment env) {
             // TODO copied from EnvFunctions.LockBinding
             env.lockBinding(sym.getName());
-            return 0;
+            return null;
         }
 
         @Fallback
-        int lock(Object sym, Object env) {
+        Void lock(Object sym, Object env) {
             guaranteeInstanceOf(sym, RSymbol.class);
             guaranteeInstanceOf(env, REnvironment.class);
             throw RInternalError.shouldNotReachHere();
@@ -59,14 +59,14 @@ public class EnvNodes {
     public abstract static class UnlockBindingNode extends FFIUpCallNode.Arg2 {
 
         @Specialization
-        int unlock(RSymbol sym, REnvironment env) {
+        Void unlock(RSymbol sym, REnvironment env) {
             // TODO copied from EnvFunctions.LockBinding
             env.unlockBinding(sym.getName());
-            return 0;
+            return null;
         }
 
         @Fallback
-        int unlock(Object sym, Object env) {
+        Void unlock(Object sym, Object env) {
             guaranteeInstanceOf(sym, RSymbol.class);
             guaranteeInstanceOf(env, REnvironment.class);
             throw RInternalError.shouldNotReachHere();
diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java
index 50237121f1..a26fa2347b 100644
--- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java
+++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java
@@ -69,10 +69,6 @@ import com.oracle.truffle.r.ffi.processor.RFFIUpCallNode;
  * implementations. For example, many arguments are "strings" but we do not specify them as
  * {@code String} here. In particular do not use array types as these are passed as custom Truffle
  * objects in some implementations.
- *
- * N.B. Although some functions do not return results, the Truffle interop EXECUTE message machinery
- * does not like {@code void} functions, so we just use {@code int}. Evidently the actual value does
- * not matter.
  */
 public interface StdUpCallsRFFI {
     // Checkstyle: stop method name check
@@ -104,7 +100,7 @@ public interface StdUpCallsRFFI {
 
     Object Rf_cons(Object car, Object cdr);
 
-    int /* void */ Rf_defineVar(Object symbolArg, Object value, Object envArg);
+    void Rf_defineVar(Object symbolArg, Object value, Object envArg);
 
     Object R_getClassDef(@RFFICstring String clazz);
 
@@ -127,7 +123,7 @@ public interface StdUpCallsRFFI {
 
     Object Rf_getAttrib(Object obj, Object name);
 
-    Object Rf_setAttrib(Object obj, Object name, Object val);
+    void Rf_setAttrib(Object obj, Object name, Object val);
 
     int Rf_inherits(Object x, @RFFICstring String clazz);
 
@@ -143,13 +139,13 @@ public interface StdUpCallsRFFI {
 
     Object Rf_PairToVectorList(Object x);
 
-    int /* void */ Rf_error(@RFFICstring String msg);
+    void Rf_error(@RFFICstring String msg);
 
-    int /* void */ Rf_warning(@RFFICstring String msg);
+    void Rf_warning(@RFFICstring String msg);
 
-    int /* void */ Rf_warningcall(Object call, @RFFICstring String msg);
+    void Rf_warningcall(Object call, @RFFICstring String msg);
 
-    int /* void */ Rf_errorcall(Object call, @RFFICstring String msg);
+    void Rf_errorcall(Object call, @RFFICstring String msg);
 
     Object Rf_allocVector(int mode, long n);
 
@@ -164,9 +160,9 @@ public interface StdUpCallsRFFI {
     @RFFIUpCallNode(LENGTHNode.class)
     int LENGTH(Object x);
 
-    int /* void */ SET_STRING_ELT(Object x, long i, Object v);
+    void SET_STRING_ELT(Object x, long i, Object v);
 
-    int /* void */ SET_VECTOR_ELT(Object x, long i, Object v);
+    void SET_VECTOR_ELT(Object x, long i, Object v);
 
     Object RAW(Object x);
 
@@ -244,15 +240,15 @@ public interface StdUpCallsRFFI {
 
     Object SYMVALUE(Object x);
 
-    int /* void */ SET_SYMVALUE(Object x, Object v);
+    void SET_SYMVALUE(Object x, Object v);
 
     int R_BindingIsLocked(Object sym, Object env);
 
     @RFFIUpCallNode(LockBindingNode.class)
-    int R_LockBinding(Object sym, Object env);
+    void R_LockBinding(Object sym, Object env);
 
     @RFFIUpCallNode(UnlockBindingNode.class)
-    int R_unLockBinding(Object sym, Object env);
+    void R_unLockBinding(Object sym, Object env);
 
     Object R_FindNamespace(Object name);
 
@@ -263,15 +259,15 @@ public interface StdUpCallsRFFI {
 
     Object Rf_GetOption1(Object tag);
 
-    int /* void */ Rf_gsetVar(Object symbol, Object value, Object rho);
+    void Rf_gsetVar(Object symbol, Object value, Object rho);
 
-    int /* void */ DUPLICATE_ATTRIB(Object to, Object from);
+    void DUPLICATE_ATTRIB(Object to, Object from);
 
     int R_compute_identical(Object x, Object y, int flags);
 
-    int /* void */ Rf_copyListMatrix(Object s, Object t, int byrow);
+    void Rf_copyListMatrix(Object s, Object t, int byrow);
 
-    int /* void */ Rf_copyMatrix(Object s, Object t, int byrow);
+    void Rf_copyMatrix(Object s, Object t, int byrow);
 
     Object R_tryEval(Object expr, Object env, int silent);
 
@@ -279,11 +275,11 @@ public interface StdUpCallsRFFI {
 
     int RDEBUG(Object x);
 
-    int /* void */ SET_RDEBUG(Object x, int v);
+    void SET_RDEBUG(Object x, int v);
 
     int RSTEP(Object x);
 
-    int /* void */ SET_RSTEP(Object x, int v);
+    void SET_RSTEP(Object x, int v);
 
     Object ENCLOS(Object x);
 
@@ -297,15 +293,15 @@ public interface StdUpCallsRFFI {
 
     int IS_S4_OBJECT(Object x);
 
-    int /* void */ SET_S4_OBJECT(Object x);
+    void SET_S4_OBJECT(Object x);
 
-    int /* void */ UNSET_S4_OBJECT(Object x);
+    void UNSET_S4_OBJECT(Object x);
 
-    int /* void */ Rprintf(@RFFICstring String message);
+    void Rprintf(@RFFICstring String message);
 
-    int /* void */ GetRNGstate();
+    void GetRNGstate();
 
-    int /* void */ PutRNGstate();
+    void PutRNGstate();
 
     double unif_rand();
 
@@ -319,13 +315,13 @@ public interface StdUpCallsRFFI {
 
     Object R_ExternalPtrProtected(Object x);
 
-    int /* void */ R_SetExternalPtrAddr(Object x, long addr);
+    void R_SetExternalPtrAddr(Object x, long addr);
 
-    int /* void */ R_SetExternalPtrTag(Object x, Object tag);
+    void R_SetExternalPtrTag(Object x, Object tag);
 
-    int /* void */ R_SetExternalPtrProtected(Object x, Object prot);
+    void R_SetExternalPtrProtected(Object x, Object prot);
 
-    int /* void */ R_CleanUp(int sa, int status, int runlast);
+    void R_CleanUp(int sa, int status, int runlast);
 
     Object R_NewHashedEnv(Object parent, Object initialSize);
 
@@ -383,7 +379,7 @@ public interface StdUpCallsRFFI {
     Object Rf_namesgets(Object vec, Object val);
 
     @RFFIUpCallNode(CopyMostAttrib.class)
-    int Rf_copyMostAttrib(Object x, Object y);
+    void Rf_copyMostAttrib(Object x, Object y);
 
     @RFFIUpCallNode(VectorToPairListNode.class)
     Object Rf_VectorToPairList(Object x);
-- 
GitLab