diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-02-05 14:40:01 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-02-05 14:40:01 +0000 |
commit | ed0fd0279617024a608a8ee4c1aa931db61e92c4 (patch) | |
tree | 81352865082b7b567c9d8185de9bfc40bed82aaf /marshal.c | |
parent | 2746f3352b0b6854420529a6432167b4cf03c13f (diff) | |
download | ruby-ed0fd0279617024a608a8ee4c1aa931db61e92c4.tar.gz |
* ruby.h (struct RStruct): embed 3 or less elements structs.
(RSTRUCT_LEN): defined for accessing struct members.
(RSTRUCT_PTR): ditto.
* struct.c: use RSTRUCT_LEN and RSTRUCT_PTR.
(struct_alloc): allocate small structs in embedded format.
(rb_struct_init_copy): ditto.
* gc.c (gc_mark_children): use RSTRUCT_LEN and RSTRUCT_PTR.
(obj_free): ditto.
* marshal.c (w_object): use RSTRUCT_LEN and RSTRUCT_PTR.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'marshal.c')
-rw-r--r-- | marshal.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -585,7 +585,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit) case T_STRUCT: w_class(TYPE_STRUCT, obj, arg, Qtrue); { - long len = RSTRUCT(obj)->len; + long len = RSTRUCT_LEN(obj); VALUE mem; long i; @@ -593,7 +593,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit) mem = rb_struct_members(obj); for (i=0; i<len; i++) { w_symbol(SYM2ID(RARRAY(mem)->ptr[i]), arg); - w_object(RSTRUCT(obj)->ptr[i], arg, limit); + w_object(RSTRUCT_PTR(obj)[i], arg, limit); } } break; |