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 | df807282ccec74d9664fab5c7c0a623b4807af29 (patch) | |
tree | 0ea3460698c535fe1d3be5217743e2aebf932a72 /ruby.h | |
parent | fd56661d8715e7974cfc9c65c98ff724b77989d2 (diff) | |
download | ruby-df807282ccec74d9664fab5c7c0a623b4807af29.tar.gz ruby-df807282ccec74d9664fab5c7c0a623b4807af29.tar.xz ruby-df807282ccec74d9664fab5c7c0a623b4807af29.zip |
* ruby.h (struct RArray): revert embedding ptr in RVALUE.
* array.c: ditto.
git-svn-id: http://svn.ruby-lang.org/repos/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; |