[sgen] Fix a bug in 64 bit LOS cardtable scanning. Fixes #27147.
authorMark Probst <mark.probst@gmail.com>
Tue, 10 Mar 2015 19:22:39 +0000 (12:22 -0700)
committerMark Probst <mark.probst@gmail.com>
Tue, 10 Mar 2015 19:24:30 +0000 (12:24 -0700)
mono/metadata/sgen-cardtable.c

index 99cae37adbd09872581b57d1b41e6e314e3ffed9..f0350a6a83871910ef89474c1c79f275cd8f1134 100644 (file)
@@ -186,10 +186,11 @@ guint8 *sgen_shadow_cardtable;
 #define SGEN_CARDTABLE_END (sgen_cardtable + CARD_COUNT_IN_BYTES)
 
 static gboolean
-sgen_card_table_region_begin_scanning (mword start, mword end)
+sgen_card_table_region_begin_scanning (mword start, mword size)
 {
+       mword end = start + size;
        /*XXX this can be improved to work on words and have a single loop induction var */
-       while (start <= end) {
+       while (start < end) {
                if (sgen_card_table_card_begin_scanning (start))
                        return TRUE;
                start += CARD_SIZE_IN_BYTES;