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;
|
||||
}
|
||||
|
||||
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
|
||||
w_ivar(st_index_t num, VALUE ivobj, VALUE encname, struct dump_call_arg *arg)
|
||||
{
|
||||
w_long(num, arg->arg);
|
||||
w_encoding(encname, arg);
|
||||
if (ivobj != Qundef) {
|
||||
struct w_ivar_arg ivarg = {arg, num};
|
||||
rb_ivar_foreach(ivobj, w_obj_each, (st_data_t)&ivarg);
|
||||
w_ivar_each(ivobj, num, arg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -682,10 +689,7 @@ w_objivar(VALUE obj, struct dump_call_arg *arg)
|
|||
|
||||
rb_ivar_foreach(obj, obj_count_ivars, (st_data_t)&num);
|
||||
w_long(num, arg->arg);
|
||||
if (num != 0) {
|
||||
struct w_ivar_arg ivarg = {arg, num};
|
||||
rb_ivar_foreach(obj, w_obj_each, (st_data_t)&ivarg);
|
||||
}
|
||||
w_ivar_each(obj, num, arg);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue