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

ruby-changes:53264

From: ko1 <ko1@a...>
Date: Thu, 1 Nov 2018 11:50:39 +0900 (JST)
Subject: [ruby-changes:53264] ko1:r65479 (trunk): fix WB miss.

ko1	2018-11-01 11:50:35 +0900 (Thu, 01 Nov 2018)

  New Revision: 65479

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

  Log:
    fix WB miss.
    
    * hash.c (linear_copy): remember a hash object to mark pointing objects.

  Modified files:
    trunk/hash.c
Index: hash.c
===================================================================
--- hash.c	(revision 65478)
+++ hash.c	(revision 65479)
@@ -1003,12 +1003,16 @@ linear_copy(VALUE hash1, VALUE hash2) https://github.com/ruby/ruby/blob/trunk/hash.c#L1003
         RHASH_ARRAY_BOUND_SET(hash1, RHASH_ARRAY_BOUND(hash2));
         RHASH_ARRAY_SIZE_SET(hash1, RHASH_ARRAY_SIZE(hash2));
         RHASH_ARRAY_SET(hash1, new_tab);
+
+        rb_gc_writebarrier_remember(hash1);
         return new_tab;
     }
     else {
         RHASH_ARRAY_BOUND_SET(hash1, RHASH_ARRAY_BOUND(hash2));
         RHASH_ARRAY_SIZE_SET(hash1, RHASH_ARRAY_SIZE(hash2));
         RHASH_ARRAY_SET(hash1, old_tab);
+
+        rb_gc_writebarrier_remember(hash1);
         return old_tab;
     }
 }

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

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