From b21dc601d5ad8fa09b35b80fe421fb8fa09584fd Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Wed, 16 Nov 2016 15:05:40 +0100
Subject: [PATCH] =?UTF-8?q?use=20=E2=80=9CpreviousLookups=E2=80=9D=20to=20?=
 =?UTF-8?q?speed=20up=20FrameSlotChangeMonitor.invalidateAllNames?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../r/runtime/env/frame/FrameSlotChangeMonitor.java       | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
index c616637b9d..8455c58c0c 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/FrameSlotChangeMonitor.java
@@ -391,9 +391,11 @@ public final class FrameSlotChangeMonitor {
             }
         }
         target.lookupResults.clear();
-        target.previousLookups.clear();
-        for (FrameDescriptor sub : target.subDescriptors) {
-            invalidateAllNames(getMetaData(sub));
+        if (!target.previousLookups.isEmpty()) {
+            target.previousLookups.clear();
+            for (FrameDescriptor sub : target.subDescriptors) {
+                invalidateAllNames(getMetaData(sub));
+            }
         }
     }
 
-- 
GitLab