diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-26 06:14:44 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-26 06:14:44 +0000 |
commit | 931574010102b4bd9db6cfb17b840e28b26030e6 (patch) | |
tree | 39b4acd08cfce1f46c50c6d8409c0b22a248f7c0 /vm.h | |
parent | 8bfcdf323f1843237140e9f119496b93557eaefd (diff) |
* 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
Diffstat (limited to 'vm.h')
-rw-r--r-- | vm.h | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -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 |