diff options
Diffstat (limited to 'checksums.c')
-rw-r--r-- | checksums.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/checksums.c b/checksums.c index f5ad843a..f0f902a3 100644 --- a/checksums.c +++ b/checksums.c @@ -41,10 +41,8 @@ STATIC size_t GC_n_faulted = 0; void GC_record_fault(struct hblk * h) { - word page = (word)h; + word page = ROUNDUP_PAGESIZE((word)h); - page += GC_page_size - 1; - page &= ~(GC_page_size - 1); if (GC_n_faulted >= NSUMS) ABORT("write fault log overflowed"); GC_faulted[GC_n_faulted++] = page; } @@ -52,10 +50,8 @@ void GC_record_fault(struct hblk * h) STATIC GC_bool GC_was_faulted(struct hblk *h) { size_t i; - word page = (word)h; + word page = ROUNDUP_PAGESIZE((word)h); - page += GC_page_size - 1; - page &= ~(GC_page_size - 1); for (i = 0; i < GC_n_faulted; ++i) { if (GC_faulted[i] == page) return TRUE; } |