summaryrefslogtreecommitdiff
path: root/marshal.c
diff options
context:
space:
mode:
Diffstat (limited to 'marshal.c')
-rw-r--r--marshal.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/marshal.c b/marshal.c
index 473aee9ccd..f602fffca3 100644
--- a/marshal.c
+++ b/marshal.c
@@ -635,10 +635,7 @@ w_object(obj, arg, limit)
long i;
w_long(len, arg);
- mem = rb_struct_iv_get(rb_obj_class(obj), "__member__");
- if (mem == Qnil) {
- rb_raise(rb_eTypeError, "uninitialized struct");
- }
+ 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);
@@ -1196,7 +1193,7 @@ r_object0(arg, proc, ivp, extmod)
ID slot;
klass = path2class(r_unique(arg));
- mem = rb_struct_iv_get(klass, "__member__");
+ mem = rb_struct_s_members(klass);
if (mem == Qnil) {
rb_raise(rb_eTypeError, "uninitialized struct");
}