Skip to content

Commit 957f086

Browse files
authored
Merge pull request #48 from zevv/disruptek-patch-2
remove off-by-one to allow full stack use
2 parents 33acce2 + 8e8e09d commit 957f086

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/zforth/zforth.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ zf_cell zf_pop(zf_ctx *ctx)
169169
{
170170
zf_cell v;
171171
CHECK(ctx, DSP(ctx) > 0, ZF_ABORT_DSTACK_UNDERRUN);
172-
CHECK(ctx, DSP(ctx) < ZF_DSTACK_SIZE, ZF_ABORT_DSTACK_OVERRUN);
172+
CHECK(ctx, DSP(ctx) <= ZF_DSTACK_SIZE, ZF_ABORT_DSTACK_OVERRUN);
173173
v = ctx->dstack[--DSP(ctx)];
174174
trace(ctx, "«" ZF_CELL_FMT " ", v);
175175
return v;
@@ -179,7 +179,7 @@ zf_cell zf_pop(zf_ctx *ctx)
179179
zf_cell zf_pick(zf_ctx *ctx, zf_addr n)
180180
{
181181
CHECK(ctx, n < DSP(ctx), ZF_ABORT_DSTACK_UNDERRUN);
182-
CHECK(ctx, DSP(ctx) < ZF_DSTACK_SIZE, ZF_ABORT_DSTACK_OVERRUN);
182+
CHECK(ctx, DSP(ctx) <= ZF_DSTACK_SIZE, ZF_ABORT_DSTACK_OVERRUN);
183183
return ctx->dstack[DSP(ctx)-n-1];
184184
}
185185

@@ -196,7 +196,7 @@ static zf_cell zf_popr(zf_ctx *ctx)
196196
{
197197
zf_cell v;
198198
CHECK(ctx, RSP(ctx) > 0, ZF_ABORT_RSTACK_UNDERRUN);
199-
CHECK(ctx, RSP(ctx) < ZF_RSTACK_SIZE, ZF_ABORT_RSTACK_OVERRUN);
199+
CHECK(ctx, RSP(ctx) <= ZF_RSTACK_SIZE, ZF_ABORT_RSTACK_OVERRUN);
200200
v = ctx->rstack[--RSP(ctx)];
201201
trace(ctx, "r«" ZF_CELL_FMT " ", v);
202202
return v;
@@ -205,7 +205,7 @@ static zf_cell zf_popr(zf_ctx *ctx)
205205
zf_cell zf_pickr(zf_ctx *ctx, zf_addr n)
206206
{
207207
CHECK(ctx, n < RSP(ctx), ZF_ABORT_RSTACK_UNDERRUN);
208-
CHECK(ctx, RSP(ctx) < ZF_RSTACK_SIZE, ZF_ABORT_RSTACK_OVERRUN);
208+
CHECK(ctx, RSP(ctx) <= ZF_RSTACK_SIZE, ZF_ABORT_RSTACK_OVERRUN);
209209
return ctx->rstack[RSP(ctx)-n-1];
210210
}
211211

0 commit comments

Comments
 (0)