diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-04-20 03:16:21 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-04-20 03:16:21 +0000 |
commit | 47807a7b44ba98fa87d9cee83852c0f6dc7615e9 (patch) | |
tree | 806456ae67e257f0e91e1a302ed37dcebe0d73af | |
parent | 378c35fc75dfeac15daec6fc055e73eb574687cc (diff) |
* eval.c (ruby_cleanup): inversed the order of errinfos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | eval.c | 17 | ||||
-rw-r--r-- | version.h | 6 |
3 files changed, 17 insertions, 10 deletions
@@ -1,3 +1,7 @@ +Fri Apr 20 12:17:05 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * eval.c (ruby_cleanup): inversed the order of errinfos. + Thu Apr 19 14:53:32 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * lib/monitor.rb (ConditionVariable#wait, mon_enter, mon_exit_for_cond): @@ -1565,15 +1565,14 @@ ruby_cleanup(ex) int ex; { int state; - VALUE err; volatile VALUE errs[2]; int nerr; - errs[0] = ruby_errinfo; + errs[1] = ruby_errinfo; ruby_safe_level = 0; - Init_stack((void*)&state); + Init_stack((void *)&state); ruby_finalize_0(); - errs[1] = ruby_errinfo; + errs[0] = ruby_errinfo; PUSH_TAG(PROT_NONE); PUSH_ITER(ITER_NOT); if ((state = EXEC_TAG()) == 0) { @@ -1584,13 +1583,16 @@ ruby_cleanup(ex) ex = state; } POP_ITER(); - ruby_errinfo = errs[0]; + ruby_errinfo = errs[1]; ex = error_handle(ex); ruby_finalize_1(); POP_TAG(); - for (nerr = sizeof(errs) / sizeof(errs[0]); nerr;) { - if (!(err = errs[--nerr])) continue; + for (nerr = 0; nerr < sizeof(errs) / sizeof(errs[0]); ++nerr) { + VALUE err = errs[nerr]; + + if (!RTEST(err)) continue; + if (rb_obj_is_kind_of(err, rb_eSystemExit)) { return sysexit_status(err); } @@ -1599,6 +1601,7 @@ ruby_cleanup(ex) ruby_default_signal(NUM2INT(sig)); } } + return ex; } @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.6" -#define RUBY_RELEASE_DATE "2007-04-19" +#define RUBY_RELEASE_DATE "2007-04-20" #define RUBY_VERSION_CODE 186 -#define RUBY_RELEASE_CODE 20070419 +#define RUBY_RELEASE_CODE 20070420 #define RUBY_PATCHLEVEL 5000 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 6 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 4 -#define RUBY_RELEASE_DAY 19 +#define RUBY_RELEASE_DAY 20 RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_release_date[]; |