This is a multi-part message in MIME format.
--------------090303000107080709080203
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

卜部です。-devに振ります。ひょっとしてこんなパッチでSEGVのほうはおさまっ
たりしませんでしょうか?


--------------090303000107080709080203
Content-Type: text/x-diff;
 nameodule#dup.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filenameodule#dup.patch"

Index: class.c
--- class.c	(revision 17576)
+++ class.c	(working copy)
@@ -62,10 +62,7 @@
     NODE *fbody  ody->nd_body;
 
     if (fbody && nd_type(fbody) NODE_SCOPE) {
-	VALUE cref  ata->klass ?
-	    (VALUE)NEW_NODE(NODE_CREF,data->klass,0,fbody->nd_rval) :
-	    fbody->nd_rval;
-	fbody  EW_NODE(NODE_SCOPE, fbody->nd_tbl, cref, fbody->nd_next);
+	fbody  b_copy_node_scope(fbody, ruby_cref);
     }
     st_insert(data->tbl, mid, (st_data_t)NEW_METHOD(fbody, body->nd_noex));
     return ST_CONTINUE;
Index: ChangeLog
--- ChangeLog	(revision 17576)
+++ ChangeLog	(working copy)
@@ -1,3 +1,14 @@
+Thu Jun 26 17:49:42 2008  URABE Shyouhei  <shyouhei / ruby-lang.org>
+
+	* class.c (clone_method): use rb_copy_node_scope.
+	  fixed [ruby-list:45102]
+	  fixed [ruby-core:17393]
+
+Thu Jun 26 17:47:01 2008  Akinori MUSHA  <knu / iDaemons.org>
+
+	* eval.c (rb_copy_node_scope), node.h: Rename from copy_node_scope
+	  and export.
+
 Tue Jun 24 15:38:52 2008  Masatoshi SEKI  <m_seki / mva.biglobe.ne.jp>
 
 	* lib/erb.rb (ERB::Compiler::TrimScanner#explicit_trim_line): Fix 
Index: eval.c
--- eval.c	(revision 17576)
+++ eval.c	(working copy)
@@ -2239,8 +2239,8 @@
     return mod;
 }
 
-static NODE*
-copy_node_scope(node, rval)
+NODE *
+rb_copy_node_scope(node, rval)
     NODE *node;
     NODE *rval;
 {
@@ -3948,7 +3948,7 @@
 		noex | OEX_NOSUPER;
 	    }
 
-	    defn  opy_node_scope(node->nd_defn, ruby_cref);
+	    defn  b_copy_node_scope(node->nd_defn, ruby_cref);
 	    rb_add_method(ruby_class, node->nd_mid, defn, noex);
 	    if (scope_vmode SCOPE_MODFUNC) {
 		rb_add_method(rb_singleton_class(ruby_class),
@@ -3984,7 +3984,7 @@
 		    rb_warning("redefine %s", rb_id2name(node->nd_mid));
 		}
 	    }
-	    defn  opy_node_scope(node->nd_defn, ruby_cref);
+	    defn  b_copy_node_scope(node->nd_defn, ruby_cref);
 	    rb_add_method(klass, node->nd_mid, defn,
 			  NOEX_PUBLIC|(body?body->nd_noex&NOEX_UNDEF:0));
 	    result  nil;
Index: node.h
--- node.h	(revision 17576)
+++ node.h	(working copy)
@@ -371,6 +371,7 @@
 #define RUBY_EVENT_ALL      0xff
 
 typedef void (*rb_event_hook_func_t) _((rb_event_t,NODE*,VALUE,ID,VALUE));
+NODE *rb_copy_node_scope _((NODE *, NODE *));
 void rb_add_event_hook _((rb_event_hook_func_t,rb_event_t));
 int rb_remove_event_hook _((rb_event_hook_func_t));
 

--------------090303000107080709080203--