From 15df557a4d843f0c2882d710f3e2ccbcf2360d1a Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 1 Nov 2006 14:42:39 +0000 Subject: * 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 --- ruby.h | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'ruby.h') diff --git a/ruby.h b/ruby.h index fd0f5ebca4..3ec19e1a91 100644 --- a/ruby.h +++ b/ruby.h @@ -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; -- cgit v1.2.3