From 06969b6bce13bcfc868a6dd2a0351eac9714291e Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 28 Oct 2013 05:57:04 +0000 Subject: load.c: share feature names * load.c (ruby_init_ext): share feature names between frame name and provided features. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- load.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'load.c') diff --git a/load.c b/load.c index c5dd4e7e75..327e099d5a 100644 --- a/load.c +++ b/load.c @@ -1013,9 +1013,11 @@ ruby_init_ext(const char *name, void (*init)(void)) { char* const lock_key = load_lock(name); if (lock_key) { + VALUE feature = rb_usascii_str_new_cstr(name); + OBJ_FREEZE(feature); rb_vm_call_cfunc(rb_vm_top_self(), init_ext_call, (VALUE)init, - 0, rb_str_new2(name)); - rb_provide(name); + 0, feature); + rb_provide_feature(feature); load_unlock(lock_key, 1); } } -- cgit v1.2.3