diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-11-01 14:42:39 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-11-01 14:42:39 +0000 |
commit | 15df557a4d843f0c2882d710f3e2ccbcf2360d1a (patch) | |
tree | 0ea3460698c535fe1d3be5217743e2aebf932a72 /ruby.h | |
parent | 11e562f34afff4d657da12e85f959200207d6bd5 (diff) |
* ruby.h (struct RArray): revert embedding ptr in RVALUE.
* array.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.h')
-rw-r--r-- | ruby.h | 30 |
1 files changed, 7 insertions, 23 deletions
@@ -391,33 +391,17 @@ struct RString { RSTRING(str)->as.ary : \ RSTRING(str)->as.heap.ptr) -#define RARRAY_EMBED_LEN_MAX 3 struct RArray { struct RBasic basic; + long len; union { - struct { - long len; - union { - long capa; - VALUE shared; - } aux; - VALUE *ptr; - } heap; - VALUE ary[RARRAY_EMBED_LEN_MAX]; - } as; + long capa; + VALUE shared; + } aux; + VALUE *ptr; }; -#define RARRAY_NOEMBED FL_USER3 -#define RARRAY_EMBED_LEN_MASK (FL_USER4|FL_USER5) -#define RARRAY_EMBED_LEN_SHIFT (FL_USHIFT+4) -#define RARRAY_LEN(a) \ - (!(RBASIC(a)->flags & RARRAY_NOEMBED) ? \ - (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \ - (RARRAY_EMBED_LEN_MASK >> RARRAY_EMBED_LEN_SHIFT)) : \ - RARRAY(a)->as.heap.len) -#define RARRAY_PTR(a) \ - (!(RBASIC(a)->flags & RARRAY_NOEMBED) ? \ - RARRAY(a)->as.ary : \ - RARRAY(a)->as.heap.ptr) +#define RARRAY_LEN(a) RARRAY(a)->len +#define RARRAY_PTR(a) RARRAY(a)->ptr struct RRegexp { struct RBasic basic; |