[前][次][番号順一覧][スレッド一覧]

ruby-changes:2089

From: ko1@a...
Date: 1 Oct 2007 10:58:52 +0900
Subject: [ruby-changes:2089] nobu - Ruby:r13580 (trunk): * ruby.c (require_libraries): use require method instead of calling

nobu	2007-10-01 10:58:44 +0900 (Mon, 01 Oct 2007)

  New Revision: 13580

  Modified files:
    trunk/ChangeLog
    trunk/ruby.c

  Log:
    * ruby.c (require_libraries): use require method instead of calling
      rb_require directly.  [ruby-dev:31322]


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ruby.c?r1=13580&r2=13579
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13580&r2=13579

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13579)
+++ ChangeLog	(revision 13580)
@@ -1,3 +1,8 @@
+Mon Oct  1 10:58:42 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* 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@r...>
 
 	* eval.c (ruby_options), ruby.c (proc_options, process_options): not
Index: ruby.c
===================================================================
--- ruby.c	(revision 13579)
+++ ruby.c	(revision 13580)
@@ -413,25 +413,24 @@
 }
 
 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;
 }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]