From 6d61fd8c514da160834acc835fc9c5f4d32c9b39 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Thu, 6 Oct 2016 13:46:12 +0200
Subject: [PATCH] simplification in UpdateField

---
 .../r/nodes/builtin/base/infix/UpdateField.java       | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/infix/UpdateField.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/infix/UpdateField.java
index 832d5fb8da..11f19dfcf2 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/infix/UpdateField.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/infix/UpdateField.java
@@ -58,15 +58,12 @@ public abstract class UpdateField extends RBuiltinNode {
 
     @Specialization
     protected Object update(VirtualFrame frame, Object container, String field, Object value) {
-        Object updatedObject = container;
-        if (!coerceList.profile(container instanceof RAbstractListVector)) {
-            updatedObject = coerceList(container, updatedObject);
-        }
-        return extract.apply(frame, updatedObject, new Object[]{field}, value);
+        Object list = coerceList.profile(container instanceof RAbstractListVector) ? container : coerceList(container);
+        return extract.apply(frame, list, new Object[]{field}, value);
     }
 
-    private Object coerceList(Object object, Object vector) {
-        if (object instanceof RAbstractVector) {
+    private Object coerceList(Object vector) {
+        if (vector instanceof RAbstractVector) {
             if (castList == null) {
                 CompilerDirectives.transferToInterpreterAndInvalidate();
                 castList = insert(CastListNodeGen.create(true, true, false));
-- 
GitLab