diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-08-31 16:58:29 -0700 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-09-02 01:22:19 +0900 |
commit | cd4f5b13228879d954fa97b6aa479c4a5ef4fb0a (patch) | |
tree | 8c381dcc4235579c63b4fd69a3bff2f84808329b /array.c | |
parent | 73b22b3ce9994b3e674de4d5016d2d9130b0e27d (diff) |
Guard array when appending
This prevents early collection of the array. The GC doesn't see the
array on the stack when Ruby is compiled with optimizations enabled
[ruby-core:105099] [Bug #18140]
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -4845,6 +4845,7 @@ ary_append(VALUE x, VALUE y) if (n > 0) { rb_ary_splice(x, RARRAY_LEN(x), 0, RARRAY_CONST_PTR_TRANSIENT(y), n); } + RB_GC_GUARD(y); return x; } |