aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-17 00:55:45 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-17 00:55:45 +0000
commit7ee2c030b0b55f455abb6f07850e41e45d91984f (patch)
treee8a9c655651d403740ee5a58364af7eb9ac07a92
parent314c1d8956c56709d60675e8ed5d1a3d3b8405f0 (diff)
downloadruby-7ee2c030b0b55f455abb6f07850e41e45d91984f.tar.gz
deduplicate "/", ":" and "\n" strings
"/" and ":" are always statically registered in symbol.c (Init_op_tbl), and "\n" is a commonly seen in source code. * file.c (Init_File): fstring on File::SEPARATOR and File::PATH_SEPARATOR * io.c (Init_IO): fstring on rb_default_rs ("\n") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--file.c4
-rw-r--r--io.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/file.c b/file.c
index 3f1212d91c..8bca84283d 100644
--- a/file.c
+++ b/file.c
@@ -6013,7 +6013,7 @@ Init_File(void)
rb_define_singleton_method(rb_cFile, "extname", rb_file_s_extname, 1);
rb_define_singleton_method(rb_cFile, "path", rb_file_s_path, 1);
- separator = rb_obj_freeze(rb_usascii_str_new2("/"));
+ separator = rb_fstring_cstr("/");
/* separates directory parts in path */
rb_define_const(rb_cFile, "Separator", separator);
rb_define_const(rb_cFile, "SEPARATOR", separator);
@@ -6027,7 +6027,7 @@ Init_File(void)
rb_define_const(rb_cFile, "ALT_SEPARATOR", Qnil);
#endif
/* path list separator */
- rb_define_const(rb_cFile, "PATH_SEPARATOR", rb_obj_freeze(rb_str_new2(PATH_SEP)));
+ rb_define_const(rb_cFile, "PATH_SEPARATOR", rb_fstring_cstr(PATH_SEP));
rb_define_method(rb_cIO, "stat", rb_io_stat, 0); /* this is IO's method */
rb_define_method(rb_cFile, "lstat", rb_file_lstat, 0);
diff --git a/io.c b/io.c
index 3c2a0a46c4..29b3f525bb 100644
--- a/io.c
+++ b/io.c
@@ -12413,10 +12413,10 @@ Init_IO(void)
rb_output_fs = Qnil;
rb_define_hooked_variable("$,", &rb_output_fs, 0, rb_str_setter);
- rb_rs = rb_default_rs = rb_usascii_str_new2("\n");
+ rb_default_rs = rb_fstring_cstr("\n"); /* avoid modifying RS_default */
rb_gc_register_mark_object(rb_default_rs);
+ rb_rs = rb_default_rs;
rb_output_rs = Qnil;
- OBJ_FREEZE(rb_default_rs); /* avoid modifying RS_default */
rb_define_hooked_variable("$/", &rb_rs, 0, rb_str_setter);
rb_define_hooked_variable("$-0", &rb_rs, 0, rb_str_setter);
rb_define_hooked_variable("$\\", &rb_output_rs, 0, rb_str_setter);