diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ruby.c | 9 |
2 files changed, 9 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Mon Oct 1 10:58:42 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ruby.c (require_libraries): use require method instead of calling + rb_require directly. [ruby-dev:31322] + Mon Oct 1 10:52:30 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * eval.c (ruby_options), ruby.c (proc_options, process_options): not @@ -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; } |