From d209eff1c2de9ccb8723a14267256be5c0c759ab Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Wed, 22 Jan 2025 09:14:30 +0100 Subject: [PATCH] Fix off-by-one error in primContextAt(Put) Fixes #162 --- .../nodes/primitives/impl/ContextPrimitives.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/primitives/impl/ContextPrimitives.java b/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/primitives/impl/ContextPrimitives.java index 2e0d68433..44bb2f283 100644 --- a/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/primitives/impl/ContextPrimitives.java +++ b/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/primitives/impl/ContextPrimitives.java @@ -278,7 +278,7 @@ protected final AbstractSqueakObject findNextAvoidingMaterialization(final Conte @GenerateNodeFactory @SqueakPrimitive(indices = 210) protected abstract static class PrimContextAtNode extends AbstractPrimitiveNode implements BinaryPrimitiveFallback { - @Specialization(guards = {"index < receiver.getStackSize()"}) + @Specialization(guards = {"index <= receiver.getStackSize()"}) protected static final Object doContextObject(final ContextObject receiver, final long index, @Bind("this") final Node node, @Cached final ContextObjectReadNode readNode) { @@ -289,7 +289,7 @@ protected static final Object doContextObject(final ContextObject receiver, fina @GenerateNodeFactory @SqueakPrimitive(indices = 211) protected abstract static class PrimContextAtPutNode extends AbstractPrimitiveNode implements TernaryPrimitiveFallback { - @Specialization(guards = "index < receiver.getStackSize()") + @Specialization(guards = "index <= receiver.getStackSize()") protected static final Object doContextObject(final ContextObject receiver, final long index, final Object value, @Bind("this") final Node node, @Cached final ContextObjectWriteNode writeNode) {