summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-14 07:17:17 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-14 07:17:17 +0000
commitd5e687b724f067fbd83652ed8f6aa037395861c0 (patch)
treefcb2f0fd8bc9f1d61c42dbc1801f7d42df7f3989
parent8b92f5df326ed21d1afeb8e7a6f46587846c9a1f (diff)
* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--eval.c2
-rw-r--r--eval_intern.h13
-rw-r--r--eval_jump.ci2
-rw-r--r--vm.h14
5 files changed, 20 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 995c8eef68..7d2e344bb0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Sep 14 16:14:28 2007 Koichi Sasada <ko1@atdot.net>
+
+ * 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@atdot.net>
* insnhelper.ci (vm_expandarray): should be volatile value for GC.
diff --git a/eval.c b/eval.c
index 63579c4e4e..655f2c41f8 100644
--- a/eval.c
+++ b/eval.c
@@ -980,8 +980,6 @@ rb_f_loop(void)
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)
diff --git a/eval_intern.h b/eval_intern.h
index 8ee1625fc6..3f4c81bf48 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -162,10 +162,19 @@ char *strrchr _((const char *, const char));
#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))
diff --git a/eval_jump.ci b/eval_jump.ci
index 1767515e6f..db32bba8f5 100644
--- a/eval_jump.ci
+++ b/eval_jump.ci
@@ -39,7 +39,7 @@ rb_f_throw(int argc, VALUE *argv)
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__
diff --git a/vm.h b/vm.h
index 08bcef03cf..02629e8814 100644
--- a/vm.h
+++ b/vm.h
@@ -252,20 +252,6 @@ while (0)
#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); \