diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-01 01:58:44 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-01 01:58:44 +0000 |
commit | 014d1ae20d939d2d522634ad54cc20036253314b (patch) | |
tree | 3923fd4a4e37fbc71a0f40b355e815dfd5012b6e /ruby.c | |
parent | b9b34059a6f7eaa63aa0b7764db6eacb77531315 (diff) | |
download | ruby-014d1ae20d939d2d522634ad54cc20036253314b.tar.gz |
* ruby.c (require_libraries): use require method instead of calling
rb_require directly. [ruby-dev:31322]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r-- | ruby.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -413,25 +413,24 @@ add_modules(const char *mod) } extern void Init_ext(void); +extern VALUE rb_vm_top_self(void); static void require_libraries(void) { struct req_list *list = req_list.head.next; struct req_list *tmp; + ID require = rb_intern("require"); Init_ext(); /* should be called here for some reason :-( */ req_list.last = 0; while (list) { - int state; - - rb_protect((VALUE (*)(VALUE))rb_require, (VALUE)list->name, &state); - if (state) - rb_jump_tag(state); + VALUE feature = rb_str_new2(list->name); tmp = list->next; free(list->name); free(list); list = tmp; + rb_funcall2(rb_vm_top_self(), require, 1, &feature); } req_list.head.next = 0; } |