ruby-changes:11700
From: yugui <ko1@a...>
Date: Mon, 4 May 2009 21:47:51 +0900 (JST)
Subject: [ruby-changes:11700] Ruby:r23342 (ruby_1_9_1): merges r23210 from trunk into ruby_1_9_1.
yugui 2009-05-04 21:31:23 +0900 (Mon, 04 May 2009) New Revision: 23342 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23342 Log: merges r23210 from trunk into ruby_1_9_1. -- * eval.c (ruby_cleanup): the order of local variables on stack is undefined. should use outermost VALUE for ruby_init_stack. Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/common.mk branches/ruby_1_9_1/eval.c Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 23341) +++ ruby_1_9_1/ChangeLog (revision 23342) @@ -1,3 +1,8 @@ +Sun Apr 19 14:43:18 2009 Nobuyoshi Nakada <nobu@r...> + + * eval.c (ruby_cleanup): the order of local variables on stack is + undefined. should use outermost VALUE for ruby_init_stack. + Mon Apr 13 11:35:55 2009 NARUSE, Yui <naruse@r...> * sprintf.c (rb_str_format): optimize previous commit. Index: ruby_1_9_1/common.mk =================================================================== --- ruby_1_9_1/common.mk (revision 23341) +++ ruby_1_9_1/common.mk (revision 23342) @@ -487,7 +487,7 @@ $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \ - {$(VPATH)}eval_jump.c {$(VPATH)}debug.h \ + {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h \ {$(VPATH)}iseq.h load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \ {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \ Index: ruby_1_9_1/eval.c =================================================================== --- ruby_1_9_1/eval.c (revision 23341) +++ ruby_1_9_1/eval.c (revision 23342) @@ -13,6 +13,7 @@ #include "eval_intern.h" #include "iseq.h" +#include "gc.h" VALUE proc_invoke(VALUE, VALUE, VALUE, VALUE); VALUE rb_binding_new(void); @@ -82,7 +83,7 @@ int state; void *tree = 0; - Init_stack((void *)&state); + Init_stack((void *)&tree); PUSH_TAG(); if ((state = EXEC_TAG()) == 0) { SAVE_ROOT_JMPBUF(GET_THREAD(), tree = ruby_process_options(argc, argv)); @@ -135,7 +136,7 @@ errs[1] = th->errinfo; th->safe_level = 0; - Init_stack((void *)&state); + Init_stack(&errs[STACK_UPPER(errs, 0, 1)]); PUSH_TAG(); if ((state = EXEC_TAG()) == 0) { @@ -631,7 +632,7 @@ VALUE rb_protect(VALUE (* proc) (VALUE), VALUE data, int * state) { - VALUE result = Qnil; /* OK */ + volatile VALUE result = Qnil; int status; rb_thread_t *th = GET_THREAD(); rb_control_frame_t *cfp = th->cfp; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/