pike.git/
src/
testsuite.in
Branch:
Tag:
Non-build tags
All tags
No tags
2004-07-16
2004-07-16 14:38:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>
64621bdfebdb511a171d3c15aaf95d6d9139b1f6 (
29
lines) (+
16
/-
13
)
[
Show
|
Annotate
]
Branch:
7.9
Made eat_stack() eat less C stack.
Rev: src/testsuite.in:1.737
1:
START_MARKER
-
test_true([["$Id: testsuite.in,v 1.
736
2004/07/
04
22
:
31
:
10
nilsson
Exp $"]]);
+
test_true([["$Id: testsuite.in,v 1.
737
2004/07/
16
14
:
38
:
36
grubba
Exp $"]]);
// This triggered a bug only if run sufficiently early. test_compile_any([[#pike 7.2]])
780:
} }
-
mixed eat_stack(int|void
cnt
)
+
mixed eat_stack(int|void
probe
)
{
-
+
// Avoid eating as much C-stack by releasing the
+
// catch at every level.
+
if (probe) return 1;
+
if (catch(eat_stack(1))) return 1;
mixed err = 1;
-
// Avoid eating C-stack by adding a catch context only every
-
// 10th frame.
-
if ((
cnt && ((
err = eat_stack(
cnt-1
)) != 10)
) ||
-
(!cnt && (catch(err = eat_stack(10)) || err != 10)))
-
return intp
(err) && err > 0 ? err + 1 : err;
+
if ((err = eat_stack()) != 10)
+
return intp(err) && err > 0 ? err + 1 : err;
if (err = catch { Foo foo;
4831:
]]) test_do([[
-
mixed eat_stack(int|void
cnt
)
+
mixed eat_stack(int|void
probe
)
{
-
+
// Avoid eating as much C-stack by releasing the
+
// catch at every level.
+
if (probe) return 1;
+
if (catch(eat_stack(1))) return 1;
mixed err = 1;
-
// Avoid eating C-stack by adding a catch context only every
-
// 10th frame.
-
if ((
cnt && ((
err = eat_stack(
cnt-1
)) != 10)
) ||
-
(!cnt && (catch(err = eat_stack(10)) || err != 10)))
-
return intp
(err) && err ? err + 1 : err;
+
if ((err = eat_stack()) != 10)
+
return intp(err) && err
> 0
? err + 1 : err;
if (err = catch { class Foo {