Merge pull request #654 from alesliehughes/master
[mono.git] / mono / metadata / sgen-los.c
index 097e91804089381f5670bdfd1f6b6c1dfb3409a6..b273a5ab822bd0cf5f35c3a3590f6c5836723fff 100644 (file)
@@ -554,19 +554,8 @@ sgen_los_update_cardtable_mod_union (void)
        LOSObject *obj;
 
        for (obj = los_object_list; obj; obj = obj->next) {
-               guint8 *start_card = sgen_card_table_get_card_address ((mword)obj->data);
-               guint8 *end_card = sgen_card_table_get_card_address ((mword)obj->data + obj->size - 1) + 1;
-               size_t num_cards = end_card - start_card;
-
-               if (!obj->cardtable_mod_union) {
-                       obj->cardtable_mod_union = sgen_alloc_internal_dynamic (num_cards,
-                                       INTERNAL_MEM_CARDTABLE_MOD_UNION, TRUE);
-                       memcpy (obj->cardtable_mod_union, start_card, num_cards);
-               } else {
-                       int i;
-                       for (i = 0; i < num_cards; ++i)
-                               obj->cardtable_mod_union [i] |= start_card [i];
-               }
+               obj->cardtable_mod_union = sgen_card_table_update_mod_union (obj->cardtable_mod_union,
+                               obj->data, obj->size, NULL);
        }
 }