diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-13 13:00:57 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-13 13:00:57 +0900 |
commit | 1b35808a13cc69f2014ffa849de8be15139d8e4e (patch) | |
tree | 332524ae606b927ddae1bdbc7e94cda607eb81a7 /vm.c | |
parent | bad61d34bed71ff3b68c6b1b29f038b305723cc0 (diff) |
Moved the common code
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -982,15 +982,16 @@ collect_outer_variable_names(ID id, VALUE val, void *ptr) data->yield = true; } else { + VALUE *store; if (data->isolate || val == Qtrue /* write */) { - if (data->ary == Qfalse) data->ary = rb_ary_new(); - rb_ary_push(data->ary, ID2SYM(id)); + store = &data->ary; } else { - if (data->read_only == Qfalse) data->read_only = rb_ary_new(); - rb_ary_push(data->read_only, ID2SYM(id)); + store = &data->read_only; } + if (*store == Qfalse) *store = rb_ary_new(); + rb_ary_push(*store, ID2SYM(id)); } return ID_TABLE_CONTINUE; } |