commit f9517812aa21203e366f8bb32dd6657ba99a66b3
parent ed0921cd56f88c322880c55b0a832ff73b3a2c18
Author: Alexander Burger <abu@software-lab.de>
Date: Wed, 16 Feb 2011 18:06:18 +0100
One more stack check
Diffstat:
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/lib/tags b/lib/tags
@@ -1,5 +1,5 @@
-! (2854 . "@src64/flow.l")
-$ (2956 . "@src64/flow.l")
+! (2856 . "@src64/flow.l")
+$ (2958 . "@src64/flow.l")
% (2570 . "@src64/big.l")
& (2805 . "@src64/big.l")
* (2389 . "@src64/big.l")
@@ -46,7 +46,7 @@ bool (1721 . "@src64/flow.l")
box (822 . "@src64/flow.l")
box? (999 . "@src64/sym.l")
by (1669 . "@src64/apply.l")
-bye (3435 . "@src64/flow.l")
+bye (3437 . "@src64/flow.l")
caaaar (271 . "@src64/subr.l")
caaadr (288 . "@src64/subr.l")
caaar (99 . "@src64/subr.l")
@@ -61,7 +61,7 @@ caddar (409 . "@src64/subr.l")
cadddr (435 . "@src64/subr.l")
caddr (156 . "@src64/subr.l")
cadr (45 . "@src64/subr.l")
-call (3087 . "@src64/flow.l")
+call (3089 . "@src64/flow.l")
car (5 . "@src64/subr.l")
case (1962 . "@src64/flow.l")
catch (2462 . "@src64/flow.l")
@@ -114,7 +114,7 @@ diff (2585 . "@src64/subr.l")
dir (2798 . "@src64/main.l")
dm (543 . "@src64/flow.l")
do (2136 . "@src64/flow.l")
-e (2917 . "@src64/flow.l")
+e (2919 . "@src64/flow.l")
echo (4298 . "@src64/io.l")
env (615 . "@src64/main.l")
eof (3438 . "@src64/io.l")
@@ -139,7 +139,7 @@ flip (1695 . "@src64/subr.l")
flush (5003 . "@src64/io.l")
fold (3343 . "@src64/sym.l")
for (2225 . "@src64/flow.l")
-fork (3261 . "@src64/flow.l")
+fork (3263 . "@src64/flow.l")
format (2089 . "@src64/big.l")
free (2047 . "@src64/db.l")
from (3457 . "@src64/io.l")
@@ -166,12 +166,12 @@ inc (2256 . "@src64/big.l")
index (2633 . "@src64/subr.l")
info (2702 . "@src64/main.l")
intern (875 . "@src64/sym.l")
-ipid (3206 . "@src64/flow.l")
+ipid (3208 . "@src64/flow.l")
isa (959 . "@src64/flow.l")
job (1426 . "@src64/flow.l")
journal (970 . "@src64/db.l")
key (3290 . "@src64/io.l")
-kill (3238 . "@src64/flow.l")
+kill (3240 . "@src64/flow.l")
last (2040 . "@src64/subr.l")
le0 (2691 . "@src64/big.l")
length (2737 . "@src64/subr.l")
@@ -236,7 +236,7 @@ on (1583 . "@src64/sym.l")
onOff (1613 . "@src64/sym.l")
one (1646 . "@src64/sym.l")
open (4229 . "@src64/io.l")
-opid (3222 . "@src64/flow.l")
+opid (3224 . "@src64/flow.l")
opt (2988 . "@src64/main.l")
or (1637 . "@src64/flow.l")
out (4123 . "@src64/io.l")
@@ -314,13 +314,13 @@ super (1218 . "@src64/flow.l")
sym (3919 . "@src64/io.l")
sym? (2430 . "@src64/subr.l")
sync (3102 . "@src64/io.l")
-sys (3058 . "@src64/flow.l")
+sys (3060 . "@src64/flow.l")
t (1748 . "@src64/flow.l")
tail (1907 . "@src64/subr.l")
tell (3174 . "@src64/io.l")
text (1272 . "@src64/sym.l")
throw (2488 . "@src64/flow.l")
-tick (3174 . "@src64/flow.l")
+tick (3176 . "@src64/flow.l")
till (3524 . "@src64/io.l")
time (2512 . "@src64/main.l")
touch (1049 . "@src64/sym.l")
@@ -347,7 +347,7 @@ wr (5128 . "@src64/io.l")
xchg (1538 . "@src64/sym.l")
xor (1698 . "@src64/flow.l")
x| (2885 . "@src64/big.l")
-yield (2712 . "@src64/flow.l")
+yield (2714 . "@src64/flow.l")
yoke (1196 . "@src64/subr.l")
zap (1063 . "@src64/sym.l")
zero (1631 . "@src64/sym.l")
diff --git a/src64/flow.l b/src64/flow.l
@@ -2638,6 +2638,8 @@
lea A ((Stack0) 4096) # Set stack limit
sub A (StkSize)
ld (StkLimit) A
+ cmp S A # Check it
+ jlt stkErr
end
do
sub Y (StkSize) # Next segment