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

ruby-changes:8739

From: yugui <ko1@a...>
Date: Wed, 19 Nov 2008 01:49:23 +0900 (JST)
Subject: [ruby-changes:8739] Ruby:r20274 (ruby_1_9_1): merges r20250 from trunk into ruby_1_9_1.

yugui	2008-11-19 01:49:00 +0900 (Wed, 19 Nov 2008)

  New Revision: 20274

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20274

  Log:
    merges r20250 from trunk into ruby_1_9_1.
    * proc.c (proc_eq): equivalence check should not done by pointer
      comparison, but should be based on iseq contents.   [ruby-dev:37101]

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/proc.c

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 20273)
+++ ruby_1_9_1/ChangeLog	(revision 20274)
@@ -1,3 +1,8 @@
+Tue Nov 18 23:02:23 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* proc.c (proc_eq): equivalence check should not done by pointer
+	  comparison, but should be based on iseq contents.   [ruby-dev:37101]
+
 Tue Nov 18 20:30:08 2008  Yukihiro Matsumoto  <matz@r...>
 
 	* lib/net/ftp.rb (Net::FTP#open_socket): SOCKSsocket is obsolete.
Index: ruby_1_9_1/proc.c
===================================================================
--- ruby_1_9_1/proc.c	(revision 20273)
+++ ruby_1_9_1/proc.c	(revision 20274)
@@ -666,12 +666,15 @@
     }
     else {
 	if (TYPE(other)          == T_DATA &&
-	    RBASIC(other)->klass == rb_cProc &&
-	    CLASS_OF(self)       == CLASS_OF(other)) {
+	    RDATA(other)->dmark  == proc_mark) {
 	    rb_proc_t *p1, *p2;
 	    GetProcPtr(self, p1);
 	    GetProcPtr(other, p2);
-	    if (p1->block.iseq == p2->block.iseq && p1->envval == p2->envval) {
+	    if (p1->envval == p2->envval &&
+		p1->block.iseq->iseq_size == p2->block.iseq->iseq_size &&
+		p1->block.iseq->local_size == p2->block.iseq->local_size &&
+		MEMCMP(p1->block.iseq->iseq, p2->block.iseq->iseq, VALUE,
+		       p1->block.iseq->iseq_size) == 0) {
 		return Qtrue;
 	    }
 	}

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

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