From dbd886d11c94917decf2c841313399f8b60890ea Mon Sep 17 00:00:00 2001 From: Florian Angerer <florian.angerer@oracle.com> Date: Thu, 4 May 2017 11:53:34 +0200 Subject: [PATCH] Fixed bug in message resolution of RList: Did return Java null which is not allowed. --- .../src/com/oracle/truffle/r/engine/interop/RListMR.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java index 13c996f9c4..f75ff54701 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RListMR.java @@ -41,6 +41,7 @@ import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.context.RContext.RCloseable; import com.oracle.truffle.r.runtime.data.RFunction; import com.oracle.truffle.r.runtime.data.RList; +import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.data.RStringVector; @MessageResolution(receiverType = RList.class, language = TruffleRLanguage.class) @@ -75,7 +76,8 @@ public class RListMR { @SuppressWarnings("try") protected Object access(VirtualFrame frame, RList receiver, String field) { try (RCloseable c = RContext.withinContext(TruffleRLanguage.INSTANCE.actuallyFindContext0(findContext))) { - return extract.applyAccessField(frame, receiver, field); + Object applyAccessField = extract.applyAccessField(frame, receiver, field); + return applyAccessField; } } } @@ -103,7 +105,8 @@ public class RListMR { @SuppressWarnings("try") protected Object access(RList receiver) { try (RCloseable c = RContext.withinContext(TruffleRLanguage.INSTANCE.actuallyFindContext0(findContext))) { - return getNamesNode.getNames(receiver); + RStringVector names = getNamesNode.getNames(receiver); + return names != null ? names : RNull.instance; } } } -- GitLab