summaryrefslogtreecommitdiff
path: root/ruby.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-07 06:44:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-07 06:44:46 +0000
commitcfa0035962f7c373ca612be5bee749803368fd5b (patch)
tree3b040a18394f2e81079d356f76c5a136b6986fcd /ruby.c
parentf4ca906d5c3267c0f84db4c5780829783c71a8b6 (diff)
* encoding.c (rb_enc_set_index, rb_enc_associate_index): should
check if frozen. * parse.y (rb_intern3), ruby.c (process_options, ruby_script): defer freezing after associating encodings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ruby.c b/ruby.c
index 86cb0b08a5..93b12d87bf 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1309,12 +1309,12 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
#if defined DOSISH || defined __CYGWIN__
translit_char(RSTRING_PTR(opt->script_name), '\\', '/');
#endif
- rb_obj_freeze(opt->script_name);
ruby_init_loadpath_safe(opt->safe_level);
rb_enc_find_index("encdb");
lenc = rb_locale_encoding();
rb_enc_associate(rb_progname, lenc);
+ rb_obj_freeze(rb_progname);
parser = rb_parser_new();
if (opt->dump & DUMP_BIT(yydebug)) {
rb_parser_set_yydebug(parser, Qtrue);
@@ -1342,6 +1342,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
opt->intern.enc.index = -1;
}
rb_enc_associate(opt->script_name, lenc);
+ rb_obj_freeze(opt->script_name);
{
long i;
VALUE load_path = GET_VM()->load_path;
@@ -1694,7 +1695,7 @@ void
ruby_script(const char *name)
{
if (name) {
- rb_progname = rb_obj_freeze(rb_external_str_new(name, strlen(name)));
+ rb_progname = rb_external_str_new(name, strlen(name));
rb_vm_set_progname(rb_progname);
}
}