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 | 32fc6324d3ca642f4597aeecc544d08c2d28fd50 (patch) | |
tree | 39b4acd08cfce1f46c50c6d8409c0b22a248f7c0 /vm.h | |
parent | 62ec26e36fc1d5c729a41bd88a05dae32587e99d (diff) | |
download | ruby-32fc6324d3ca642f4597aeecc544d08c2d28fd50.tar.gz ruby-32fc6324d3ca642f4597aeecc544d08c2d28fd50.tar.xz ruby-32fc6324d3ca642f4597aeecc544d08c2d28fd50.zip |
* 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: http://svn.ruby-lang.org/repos/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 |