summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-09-01 07:25:25 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-09-01 07:25:25 +0000
commit7e0cb3d7356f47a8473eae7094c4bc135bccebd0 (patch)
treea42b760319f85d37afab6d4f8af0038901772ec7 /eval.c
parent80bec905cbb7719a4f241ae859fa705a8d265894 (diff)
downloadruby-7e0cb3d7356f47a8473eae7094c4bc135bccebd0.tar.gz
ruby-7e0cb3d7356f47a8473eae7094c4bc135bccebd0.tar.xz
ruby-7e0cb3d7356f47a8473eae7094c4bc135bccebd0.zip
matz
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/eval.c b/eval.c
index be0303e0a..b485cf8ca 100644
--- a/eval.c
+++ b/eval.c
@@ -5652,8 +5652,8 @@ Init_eval()
if (getrlimit(RLIMIT_STACK, &rlim) == 0) {
double space = (double)rlim.rlim_cur*0.2;
- if (space > 256*1024) space = 256*1024;
- STACK_LEVEL_MAX = (rlim.rlim_cur - space) / 4;
+ if (space > 1024*1024) space = 1024*1024;
+ STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE);
}
}
#endif
@@ -6025,20 +6025,20 @@ proc_call(proc, args)
ruby_safe_level = safe;
if (state) {
- if (orphan) {/* orphan procedure */
- switch (state) {
- case TAG_BREAK:
- rb_raise(rb_eLocalJumpError, "break from proc-closure");
- break;
- case TAG_RETRY:
- rb_raise(rb_eLocalJumpError, "retry from proc-closure");
- break;
- case TAG_RETURN:
+ switch (state) {
+ case TAG_BREAK:
+ break;
+ case TAG_RETRY:
+ rb_raise(rb_eLocalJumpError, "retry from proc-closure");
+ break;
+ case TAG_RETURN:
+ if (orphan) { /* orphan procedure */
rb_raise(rb_eLocalJumpError, "return from proc-closure");
- break;
}
+ /* fall through */
+ default:
+ JUMP_TAG(state);
}
- JUMP_TAG(state);
}
return result;
}