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

ruby-changes:39510

From: ktsj <ko1@a...>
Date: Sun, 16 Aug 2015 17:25:47 +0900 (JST)
Subject: [ruby-changes:39510] ktsj:r51591 (trunk): * gc.c (gc_mark_children): check if RCLASS_EXT is valid

ktsj	2015-08-16 17:25:29 +0900 (Sun, 16 Aug 2015)

  New Revision: 51591

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

  Log:
    * gc.c (gc_mark_children): check if RCLASS_EXT is valid
      before marking. This fixes the following test failure
      introduced in r51126:
    
        make test-all TESTOPTS='--gc-stress ruby/test_refinement.rb'

  Modified files:
    trunk/ChangeLog
    trunk/gc.c
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 51590)
+++ ChangeLog	(revision 51591)
@@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Sun Aug 16 17:24:10 2015  Kazuki Tsujimoto  <kazuki@c...>
+
+	* gc.c (gc_mark_children): check if RCLASS_EXT is valid
+	  before marking. This fixes the following test failure
+	  introduced in r51126:
+
+	    make test-all TESTOPTS='--gc-stress ruby/test_refinement.rb'
+
 Sat Aug 15 10:51:08 2015  Nobuyoshi Nakada  <nobu@r...>
 
 	* ext/win32/lib/win32/registry.rb (API#SetValue): data size should
Index: gc.c
===================================================================
--- gc.c	(revision 51590)
+++ gc.c	(revision 51591)
@@ -4331,8 +4331,8 @@ gc_mark_children(rb_objspace_t *objspace https://github.com/ruby/ruby/blob/trunk/gc.c#L4331
 	if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {
 	    mark_m_tbl(objspace, RCLASS_M_TBL(obj));
 	}
-	mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));
 	if (!RCLASS_EXT(obj)) break;
+	mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));
 	gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
 	break;
 

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

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