From 931574010102b4bd9db6cfb17b840e28b26030e6 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 26 Jun 2007 06:14:44 +0000 Subject: * cont.c (rb_fiber_s_new): revert initializing VM stack. * yarvcore.c (th_init2): ditto. * vm.c, vm.h: fix to stop using Qundef on VM stack. According to this change, VM stack should not include Qundef value. * insns.def (putundef): removed. * compile.c (iseq_compile_each): ditto. * eval.c (eval): fix spacing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'vm.h') diff --git a/vm.h b/vm.h index e3e5ddd8c2..b3e311cb0f 100644 --- a/vm.h +++ b/vm.h @@ -222,16 +222,14 @@ default: \ /* env{ env[0] // special (block or prev env) - env[1] // orphan - env[2] // in heap - env[3] // env object - env[4] // prev env val + env[1] // env object + env[2] // prev env val }; */ -#define ORPHAN_ENV_P(env) ((env)[1] == Qundef) -#define ENV_IN_HEAP_P(env) ((env)[2] == Qundef) -#define ENV_VAL(env) ((env)[3]) +#define ENV_IN_HEAP_P(th, env) \ + (!((th)->stack < (env) && (env) < ((th)->stack + (th)->stack_size))) +#define ENV_VAL(env) ((env)[1]) #define FRAME_MAGIC_METHOD 0xfaffff11 #define FRAME_MAGIC_BLOCK 0xfaffff21 -- cgit v1.2.3