diff options
Diffstat (limited to 'dir.c')
-rw-r--r-- | dir.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1622,14 +1622,17 @@ push_glob(VALUE ary, VALUE str, int flags) { struct glob_args args; rb_encoding *enc = rb_enc_get(str); + int ret; if (enc == rb_usascii_encoding()) enc = rb_filesystem_encoding(); args.func = push_pattern; args.value = ary; args.enc = enc; - return ruby_brace_glob0(RSTRING_PTR(str), flags | GLOB_VERBOSE, - rb_glob_caller, (VALUE)&args, enc); + ret = ruby_brace_glob0(RSTRING_PTR(str), flags | GLOB_VERBOSE, + rb_glob_caller, (VALUE)&args, enc); + RB_GC_GUARD(str); + return ret; } static VALUE |