#include "mc_page_store.h"
#include "mc_mmu.h"
#include "mc_private.h"
+#include "mc_snapshot.h"
#include <xbt/mmalloc.h>
uint64_t* pagemap = NULL;
if (_sg_mc_soft_dirty && mc_model_checker->parent_snapshot) {
- pagemap = (uint64_t*) mmalloc_no_memset((xbt_mheap_t) mc_heap, sizeof(uint64_t) * page_count);
+ pagemap = (uint64_t*) mmalloc_no_memset(mc_heap, sizeof(uint64_t) * page_count);
mc_read_pagemap(pagemap, mc_page_number(NULL, permanent_addr), page_count);
}
ref_reg==NULL ? NULL : ref_reg->page_numbers);
if(pagemap) {
- mfree((xbt_mheap_t) mc_heap, pagemap);
+ mfree(mc_heap, pagemap);
}
return new_reg;
}
// Read soft-dirty bits if necessary in order to know which pages have changed:
if (_sg_mc_soft_dirty && mc_model_checker->parent_snapshot) {
- pagemap = (uint64_t*) mmalloc_no_memset((xbt_mheap_t) mc_heap, sizeof(uint64_t) * page_count);
+ pagemap = (uint64_t*) mmalloc_no_memset(mc_heap, sizeof(uint64_t) * page_count);
mc_read_pagemap(pagemap, mc_page_number(NULL, reg->permanent_addr), page_count);
}
mc_restore_page_snapshot_region(reg->permanent_addr, page_count, reg->page_numbers,
pagemap, ref_reg ? ref_reg->page_numbers : NULL);
- // This is funny, the restoration can restore the state of the current heap,
- // if this happen free(pagemap) would free from the wrong heap:
if(pagemap) {
- mfree((xbt_mheap_t) mc_heap, pagemap);
+ free(pagemap);
}
}