From 903cf47249c7484e1cf9d47ecac85f52916ee235 Mon Sep 17 00:00:00 2001 From: Florian Angerer <florian.angerer@oracle.com> Date: Wed, 28 Jun 2017 10:45:11 +0200 Subject: [PATCH] Indexed access to RArgsValuesAndNames via interop. --- .../r/engine/interop/RArgsValuesAndNamesMR.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java index 82f194dcdc..dd8b1d3e8b 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java @@ -22,6 +22,7 @@ */ package com.oracle.truffle.r.engine.interop; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.interop.CanResolve; import com.oracle.truffle.api.interop.MessageResolution; import com.oracle.truffle.api.interop.Resolve; @@ -45,6 +46,14 @@ public class RArgsValuesAndNamesMR { } } + @Resolve(message = "GET_SIZE") + public abstract static class RArgsValuesAndNamesGetSizeNode extends Node { + protected Object access(RArgsValuesAndNames receiver) { + assert false : "GET_SIZE"; + return receiver.getLength(); + } + } + @Resolve(message = "IS_NULL") public abstract static class RArgsValuesAndNamesIsNullNode extends Node { protected Object access(@SuppressWarnings("unused") RArgsValuesAndNames receiver) { @@ -52,6 +61,13 @@ public class RArgsValuesAndNamesMR { } } + @Resolve(message = "READ") + public abstract static class RArgsValuesAndNamesReadNode extends Node { + protected Object access(@SuppressWarnings("unused") VirtualFrame frame, RArgsValuesAndNames receiver, int index) { + return receiver.getArgument(index); + } + } + @CanResolve public abstract static class RArgsValuesAndNamesCheck extends Node { -- GitLab