mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Hoisted out w_ivar_each
This commit is contained in:
parent
c9423b016c
commit
0b1e26398e
1 changed files with 10 additions and 6 deletions
16
marshal.c
16
marshal.c
|
@ -664,14 +664,21 @@ has_ivars(VALUE obj, VALUE encname, VALUE *ivobj)
|
||||||
return num + enc;
|
return num + enc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
w_ivar_each(VALUE obj, st_index_t num, struct dump_call_arg *arg)
|
||||||
|
{
|
||||||
|
struct w_ivar_arg ivarg = {arg, num};
|
||||||
|
if (!num) return;
|
||||||
|
rb_ivar_foreach(obj, w_obj_each, (st_data_t)&ivarg);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
w_ivar(st_index_t num, VALUE ivobj, VALUE encname, struct dump_call_arg *arg)
|
w_ivar(st_index_t num, VALUE ivobj, VALUE encname, struct dump_call_arg *arg)
|
||||||
{
|
{
|
||||||
w_long(num, arg->arg);
|
w_long(num, arg->arg);
|
||||||
w_encoding(encname, arg);
|
w_encoding(encname, arg);
|
||||||
if (ivobj != Qundef) {
|
if (ivobj != Qundef) {
|
||||||
struct w_ivar_arg ivarg = {arg, num};
|
w_ivar_each(ivobj, num, arg);
|
||||||
rb_ivar_foreach(ivobj, w_obj_each, (st_data_t)&ivarg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -682,10 +689,7 @@ w_objivar(VALUE obj, struct dump_call_arg *arg)
|
||||||
|
|
||||||
rb_ivar_foreach(obj, obj_count_ivars, (st_data_t)&num);
|
rb_ivar_foreach(obj, obj_count_ivars, (st_data_t)&num);
|
||||||
w_long(num, arg->arg);
|
w_long(num, arg->arg);
|
||||||
if (num != 0) {
|
w_ivar_each(obj, num, arg);
|
||||||
struct w_ivar_arg ivarg = {arg, num};
|
|
||||||
rb_ivar_foreach(obj, w_obj_each, (st_data_t)&ivarg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue