From 0e4a7b2a031caa845d9ce9c97c93e6e1c751d7ec Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 23 Sep 2013 19:36:50 -0700 Subject: eliminate use of traditional intern API (mrb_intern()) completely --- mrbgems/mruby-struct/src/struct.c | 2 +- src/class.c | 4 ++-- src/parse.y | 2 +- tasks/mrbgems_test.rake | 18 +++++++++--------- test/driver.c | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c index a8511fc3c..0dde86ce0 100644 --- a/mrbgems/mruby-struct/src/struct.c +++ b/mrbgems/mruby-struct/src/struct.c @@ -294,7 +294,7 @@ mrb_struct_define(mrb_state *mrb, const char *name, ...) va_start(ar, name); while ((mem = va_arg(ar, char*)) != 0) { - mrb_sym slot = mrb_intern(mrb, mem); + mrb_sym slot = mrb_intern_cstr(mrb, mem); mrb_ary_push(mrb, ary, mrb_symbol_value(slot)); } va_end(ar); diff --git a/src/class.c b/src/class.c index 2fc14b2b8..84c6964e2 100644 --- a/src/class.c +++ b/src/class.c @@ -1045,7 +1045,7 @@ mrb_instance_new(mrb_state *mrb, mrb_value cv) obj = mrb_instance_alloc(mrb, cv); mrb_get_args(mrb, "*&", &argv, &argc, &blk); - mrb_funcall_with_block(mrb, obj, mrb_intern(mrb, "initialize"), argc, argv, blk); + mrb_funcall_with_block(mrb, obj, mrb_intern2(mrb, "initialize", 10), argc, argv, blk); return obj; } @@ -1056,7 +1056,7 @@ mrb_obj_new(mrb_state *mrb, struct RClass *c, int argc, mrb_value *argv) mrb_value obj; obj = mrb_instance_alloc(mrb, mrb_obj_value(c)); - mrb_funcall_argv(mrb, obj, mrb_intern(mrb, "initialize"), argc, argv); + mrb_funcall_argv(mrb, obj, mrb_intern2(mrb, "initialize", 10), argc, argv); return obj; } diff --git a/src/parse.y b/src/parse.y index c9ecc349b..bf4318d68 100644 --- a/src/parse.y +++ b/src/parse.y @@ -67,7 +67,7 @@ typedef unsigned int stack_type; static inline mrb_sym intern_gen(parser_state *p, const char *s) { - return mrb_intern(p->mrb, s); + return mrb_intern_cstr(p->mrb, s); } #define intern(s) intern_gen(p,(s)) diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake index 1050b84bb..d74351fe9 100644 --- a/tasks/mrbgems_test.rake +++ b/tasks/mrbgems_test.rake @@ -27,16 +27,16 @@ MRuby.each_target do g.test_rbfiles.count.times do |i| f.puts %Q[ ai = mrb_gc_arena_save(mrb);] f.puts %Q[ mrb2 = mrb_open();] - f.puts %Q[ val3 = mrb_gv_get(mrb, mrb_intern(mrb, "$mrbtest_verbose"));] + f.puts %Q[ val3 = mrb_gv_get(mrb, mrb_intern_cstr(mrb, "$mrbtest_verbose"));] f.puts %Q[ if (mrb_test(val3)) {] - f.puts %Q[ mrb_gv_set(mrb2, mrb_intern(mrb2, "$mrbtest_verbose"), val3);] + f.puts %Q[ mrb_gv_set(mrb2, mrb_intern_cstr(mrb2, "$mrbtest_verbose"), val3);] f.puts %Q[ }] f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);] f.puts %Q[ if (mrb2->exc) {] f.puts %Q[ mrb_p(mrb2, mrb_obj_value(mrb2->exc));] f.puts %Q[ exit(EXIT_FAILURE);] f.puts %Q[ }] - f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern(mrb2, "GEMNAME"), mrb_str_new(mrb2, "#{g.name}", #{g.name.length}));] + f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern_cstr(mrb2, "GEMNAME"), mrb_str_new(mrb2, "#{g.name}", #{g.name.length}));] unless g.test_args.empty? f.puts %Q[ test_args_hash = mrb_hash_new_capa(mrb, #{g.test_args.length}); ] @@ -45,7 +45,7 @@ MRuby.each_target do escaped_arg_value = arg_value.gsub('\\', '\\\\\\\\').gsub('"', '\"') f.puts %Q[ mrb_hash_set(mrb2, test_args_hash, mrb_str_new(mrb2, "#{escaped_arg_name.to_s}", #{escaped_arg_name.to_s.length}), mrb_str_new(mrb2, "#{escaped_arg_value.to_s}", #{escaped_arg_value.to_s.length})); ] end - f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern(mrb2, "TEST_ARGS"), test_args_hash); ] + f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern_cstr(mrb2, "TEST_ARGS"), test_args_hash); ] end f.puts %Q[ mrb_#{g.funcname}_gem_test(mrb2);] unless g.test_objs.empty? @@ -58,16 +58,16 @@ MRuby.each_target do f.puts %Q[ ] %w(ok_test ko_test kill_test).each do |vname| - f.puts %Q[ val2 = mrb_gv_get(mrb2, mrb_intern(mrb2, "$#{vname}"));] + f.puts %Q[ val2 = mrb_gv_get(mrb2, mrb_intern_cstr(mrb2, "$#{vname}"));] f.puts %Q[ if (mrb_fixnum_p(val2)) {] - f.puts %Q[ val1 = mrb_gv_get(mrb, mrb_intern(mrb, "$#{vname}"));] - f.puts %Q[ mrb_gv_set(mrb, mrb_intern(mrb, "$#{vname}"), mrb_fixnum_value(mrb_fixnum(val1) + mrb_fixnum(val2)));] + f.puts %Q[ val1 = mrb_gv_get(mrb, mrb_intern_cstr(mrb, "$#{vname}"));] + f.puts %Q[ mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$#{vname}"), mrb_fixnum_value(mrb_fixnum(val1) + mrb_fixnum(val2)));] f.puts %Q[ }\n] end - f.puts %Q[ ary2 = mrb_gv_get(mrb2, mrb_intern(mrb2, "$asserts"));] + f.puts %Q[ ary2 = mrb_gv_get(mrb2, mrb_intern_cstr(mrb2, "$asserts"));] f.puts %Q[ if (mrb_test(ary2)) {] - f.puts %Q[ ary1 = mrb_gv_get(mrb, mrb_intern(mrb, "$asserts"));] + f.puts %Q[ ary1 = mrb_gv_get(mrb, mrb_intern_cstr(mrb, "$asserts"));] f.puts %Q[ val2 = mrb_ary_shift(mrb2, ary2);] f.puts %Q[ ] f.puts %Q[ while (mrb_test(val2)) {] diff --git a/test/driver.c b/test/driver.c index cfdfe72a8..e1ef6ae10 100644 --- a/test/driver.c +++ b/test/driver.c @@ -34,8 +34,8 @@ check_error(mrb_state *mrb) { /* Error check */ /* $ko_test and $kill_test should be 0 */ - mrb_value ko_test = mrb_gv_get(mrb, mrb_intern(mrb, "$ko_test")); - mrb_value kill_test = mrb_gv_get(mrb, mrb_intern(mrb, "$kill_test")); + mrb_value ko_test = mrb_gv_get(mrb, mrb_intern2(mrb, "$ko_test", 8)); + mrb_value kill_test = mrb_gv_get(mrb, mrb_intern2(mrb, "$kill_test", 8)); return mrb_fixnum_p(ko_test) && mrb_fixnum(ko_test) == 0 && mrb_fixnum_p(kill_test) && mrb_fixnum(kill_test) == 0; } @@ -104,7 +104,7 @@ main(int argc, char **argv) if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v') { printf("verbose mode: enable\n\n"); - mrb_gv_set(mrb, mrb_intern(mrb, "$mrbtest_verbose"), mrb_true_value()); + mrb_gv_set(mrb, mrb_intern2(mrb, "$mrbtest_verbose", 16), mrb_true_value()); } krn = mrb->kernel_module; -- cgit v1.2.3 From 6e47c9dfc14f0a213052f0362517017659c389b2 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 23 Sep 2013 19:59:24 -0700 Subject: fix a bug introduced in prev commit --- test/driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/driver.c b/test/driver.c index e1ef6ae10..707794ff9 100644 --- a/test/driver.c +++ b/test/driver.c @@ -35,7 +35,7 @@ check_error(mrb_state *mrb) /* Error check */ /* $ko_test and $kill_test should be 0 */ mrb_value ko_test = mrb_gv_get(mrb, mrb_intern2(mrb, "$ko_test", 8)); - mrb_value kill_test = mrb_gv_get(mrb, mrb_intern2(mrb, "$kill_test", 8)); + mrb_value kill_test = mrb_gv_get(mrb, mrb_intern2(mrb, "$kill_test", 10)); return mrb_fixnum_p(ko_test) && mrb_fixnum(ko_test) == 0 && mrb_fixnum_p(kill_test) && mrb_fixnum(kill_test) == 0; } -- cgit v1.2.3