]> granicus.if.org Git - gc/commitdiff
Eliminate duplicate clear_mark_bit call when removing disappearing link
authorIvan Maidanski <ivmai@mail.ru>
Wed, 4 Jul 2018 14:33:52 +0000 (17:33 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 17 Jul 2018 06:04:40 +0000 (09:04 +0300)
(fix of commit 8d13d52b6)

* finalize.c (GC_make_disappearing_links_disappear,
GC_remove_dangling_disappearing_links): Remove GC_clear_mark_bit call.

finalize.c

index 2c2c5e5a84a7c03cb577827f1bbd1116d5e863b1..cb582b83fd77a57166fde9a8b953aedda30720b2 100644 (file)
@@ -719,7 +719,6 @@ GC_INLINE void GC_make_disappearing_links_disappear(
         real_link = GC_REVEAL_POINTER(curr -> dl_hidden_link);
         if (!GC_is_marked(real_ptr)) {
             *(word *)real_link = 0;
-            GC_clear_mark_bit(curr);
             DELETE_DL_HASHTBL_ENTRY(dl_hashtbl, curr, prev, next);
         }
     ITERATE_DL_HASHTBL_END(curr, prev)
@@ -734,7 +733,6 @@ GC_INLINE void GC_remove_dangling_disappearing_links(
     ITERATE_DL_HASHTBL_BEGIN(dl_hashtbl, curr, prev)
         real_link = GC_base(GC_REVEAL_POINTER(curr -> dl_hidden_link));
         if (NULL != real_link && !GC_is_marked(real_link)) {
-            GC_clear_mark_bit(curr);
             DELETE_DL_HASHTBL_ENTRY(dl_hashtbl, curr, prev, next);
         }
     ITERATE_DL_HASHTBL_END(curr, prev)