diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-09-01 07:25:25 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-09-01 07:25:25 +0000 |
commit | cff9ebc8dcdab943fa7b48b97ef42e6c1fd58f1c (patch) | |
tree | a42b760319f85d37afab6d4f8af0038901772ec7 /eval.c | |
parent | 2252d4ce028b38bb46310b215b2c98afbf224d55 (diff) | |
download | ruby-cff9ebc8dcdab943fa7b48b97ef42e6c1fd58f1c.tar.gz |
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 26 |
1 files changed, 13 insertions, 13 deletions
@@ -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; } |