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>
Wed, 4 Jul 2018 14:33:52 +0000 (17:33 +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 a80c6c2..c398c50 100644 (file)
@@ -988,7 +988,6 @@ GC_INLINE void GC_make_disappearing_links_disappear(
 
         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)
@@ -1004,7 +1003,6 @@ GC_INLINE void GC_remove_dangling_disappearing_links(
                 (ptr_t)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)