From 71ac97addc4ccbc48d414e5e8d3fe6c78004c913 Mon Sep 17 00:00:00 2001 From: Florian Angerer <florian.angerer@oracle.com> Date: Mon, 21 Aug 2017 14:35:08 +0200 Subject: [PATCH] Fix: NPE due to multi slot data. --- .../src/com/oracle/truffle/r/runtime/env/REnvironment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java index dcb01ee548..eb109fbe93 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java @@ -930,7 +930,8 @@ public abstract class REnvironment extends RAttributeStorage { slots = namespacesFrame.getFrameDescriptor().getSlots().toArray(slots); for (int i = 0; i < slots.length; i++) { REnvironment namespaceEnv = (REnvironment) FrameSlotChangeMonitor.getValue(slots[i], namespacesFrame); - if (namespaceEnv != Base.baseNamespaceEnv()) { + // Could be 'null' due to multi slot data and an error during package loading + if (namespaceEnv != Base.baseNamespaceEnv() && namespaceEnv != null) { // base namespace frame redirects all accesses to base frame and this would // result in processing the slots twice fun.apply(namespaceEnv.getFrame(), true); -- GitLab