mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #1512 from wasabiz/eliminate-mrb-intern
eliminate use of traditional intern API (mrb_intern()) completely
This commit is contained in:
@@ -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);
|
||||
|
||||
+2
-2
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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))
|
||||
|
||||
|
||||
@@ -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)) {]
|
||||
|
||||
+3
-3
@@ -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", 10));
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user