From 116f45609d1b019b8424eb49c0900f8fa85d8d9e Mon Sep 17 00:00:00 2001
From: Adam Welc <adam.welc@oracle.com>
Date: Thu, 31 Dec 2015 11:12:49 -0800
Subject: [PATCH] Names used for slot retrieval must be interned.

---
 .../com/oracle/truffle/r/nodes/access/AccessSlotNode.java    | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
index 0bd1bdf8ad..6c6f480933 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/AccessSlotNode.java
@@ -98,8 +98,9 @@ public abstract class AccessSlotNode extends RNode {
 
     @Specialization(contains = "getSlotS4Cached", guards = "object.isS4()")
     protected Object getSlotS4(RAttributable object, String name) {
-        Object value = object.getAttr(attrProfiles, name.intern());
-        return getSlotS4Internal(object, name, value);
+        String internedName = name.intern();
+        Object value = object.getAttr(attrProfiles, internedName);
+        return getSlotS4Internal(object, internedName, value);
     }
 
     protected RFunction getDataPartFunction(REnvironment methodsNamespace) {
-- 
GitLab