ruby-changes:1950
From: ko1@a...
Date: 14 Sep 2007 16:17:40 +0900
Subject: [ruby-changes:1950] ko1 - Ruby:r13441 (trunk): * vm.h, eval_intern.h: move some macros to eval_intern.h.
ko1 2007-09-14 16:17:17 +0900 (Fri, 14 Sep 2007) New Revision: 13441 Modified files: trunk/ChangeLog trunk/eval.c trunk/eval_intern.h trunk/eval_jump.ci trunk/vm.h Log: * vm.h, eval_intern.h: move some macros to eval_intern.h. * eval_jump.ci (rb_f_throw): fix to use NEW_THROW_OBJECT(). * eval.c (rb_f_loop): remove additional macro. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/vm.h?r1=13441&r2=13440 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13441&r2=13440 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/eval.c?r1=13441&r2=13440 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/eval_jump.ci?r1=13441&r2=13440 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/eval_intern.h?r1=13441&r2=13440 Index: eval_intern.h =================================================================== --- eval_intern.h (revision 13440) +++ eval_intern.h (revision 13441) @@ -162,10 +162,19 @@ #define TAG_RAISE 0x6 #define TAG_THROW 0x7 #define TAG_FATAL 0x8 -#define TAG_CONTCALL 0x9 -#define TAG_THREAD 0xa #define TAG_MASK 0xf +#define NEW_THROW_OBJECT(val, pt, st) \ + ((VALUE)NEW_NODE(NODE_LIT, (val), (pt), (st))) +#define SET_THROWOBJ_CATCH_POINT(obj, val) \ + (RNODE((obj))->u2.value = (val)) +#define SET_THROWOBJ_STATE(obj, val) \ + (RNODE((obj))->u3.value = (val)) + +#define GET_THROWOBJ_VAL(obj) ((VALUE)RNODE((obj))->u1.value) +#define GET_THROWOBJ_CATCH_POINT(obj) ((VALUE*)RNODE((obj))->u2.value) +#define GET_THROWOBJ_STATE(obj) ((int)RNODE((obj))->u3.value) + #define SCOPE_TEST(f) \ (ruby_cref()->nd_visi & (f)) Index: ChangeLog =================================================================== --- ChangeLog (revision 13440) +++ ChangeLog (revision 13441) @@ -1,3 +1,11 @@ +Fri Sep 14 16:14:28 2007 Koichi Sasada <ko1@a...> + + * vm.h, eval_intern.h: move some macros to eval_intern.h. + + * eval_jump.ci (rb_f_throw): fix to use NEW_THROW_OBJECT(). + + * eval.c (rb_f_loop): remove additional macro. + Fri Sep 14 16:12:10 2007 Koichi Sasada <ko1@a...> * insnhelper.ci (vm_expandarray): should be volatile value for GC. Index: eval_jump.ci =================================================================== --- eval_jump.ci (revision 13440) +++ eval_jump.ci (revision 13441) @@ -39,7 +39,7 @@ rb_raise(rb_eArgError, "uncaught throw %s", RSTRING_PTR(desc)); } rb_trap_restore_mask(); - th->errinfo = (VALUE)rb_node_newnode(NODE_MEMO, tag, 0, TAG_THROW); + th->errinfo = NEW_THROW_OBJECT(tag, 0, TAG_THROW); JUMP_TAG(TAG_THROW); #ifndef __GNUC__ Index: eval.c =================================================================== --- eval.c (revision 13440) +++ eval.c (revision 13441) @@ -980,8 +980,6 @@ return Qnil; /* dummy */ } -#define GET_THROWOBJ_CATCH_POINT(obj) ((VALUE*)RNODE((obj))->u2.value) - VALUE rb_iterate(VALUE (*it_proc) (VALUE), VALUE data1, VALUE (*bl_proc) (ANYARGS), VALUE data2) Index: vm.h =================================================================== --- vm.h (revision 13440) +++ vm.h (revision 13441) @@ -252,20 +252,6 @@ #define RUBYVM_CFUNC_FRAME_P(cfp) \ (VM_FRAME_TYPE(cfp) == FRAME_MAGIC_CFUNC) -/* - * Excception - */ - -#define NEW_THROW_OBJECT(val, pt, st) NEW_NODE(NODE_LIT, (val), (pt), (st)) -#define GET_THROWOBJ_VAL(obj) ((VALUE)RNODE((obj))->u1.value) -#define GET_THROWOBJ_CATCH_POINT(obj) ((VALUE*)RNODE((obj))->u2.value) -#define GET_THROWOBJ_STATE(obj) ((int)RNODE((obj))->u3.value) - -#define SET_THROWOBJ_CATCH_POINT(obj, val) \ - (RNODE((obj))->u2.value = (val)) -#define SET_THROWOBJ_STATE(obj, val) \ - (RNODE((obj))->u3.value = (val)) - #if OPT_CALL_THREADED_CODE #define THROW_EXCEPTION(exc) do { \ th->errinfo = (VALUE)(exc); \ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml