Revision: 3608 http://trac.macosforge.org/projects/ruby/changeset/3608 Author: lsansonetti@apple.com Date: 2010-02-24 15:58:23 -0800 (Wed, 24 Feb 2010) Log Message: ----------- always retain rb_progname Modified Paths: -------------- MacRuby/branches/icu/ruby.c Modified: MacRuby/branches/icu/ruby.c =================================================================== --- MacRuby/branches/icu/ruby.c 2010-02-24 23:05:40 UTC (rev 3607) +++ MacRuby/branches/icu/ruby.c 2010-02-24 23:58:23 UTC (rev 3608) @@ -832,7 +832,7 @@ return enc; } -VALUE rb_progname; +VALUE rb_progname = Qnil; VALUE rb_argv0; static rb_encoding *src_encoding; @@ -1276,14 +1276,18 @@ } } #endif + GC_RELEASE(rb_progname); rb_progname = rb_tainted_str_new(s, i); + GC_RETAIN(rb_progname); } void ruby_script(const char *name) { - if (name) { + if (name != NULL) { + GC_RELEASE(rb_progname); rb_progname = rb_tainted_str_new2(name); + GC_RETAIN(rb_progname); } } @@ -1350,7 +1354,6 @@ rb_define_hooked_variable("$0", &rb_progname, 0, set_arg0); rb_define_hooked_variable("$PROGRAM_NAME", &rb_progname, 0, set_arg0); - GC_ROOT(&rb_progname); rb_define_global_const("ARGV", rb_argv); rb_global_variable(&rb_argv0);