void ProcessComparisonState::initHeapInformation(xbt_mheap_t heap,
std::vector<simgrid::mc::IgnoredHeapRegion>* i)
{
- auto heaplimit = ((struct mdesc *) heap)->heaplimit;
- this->heapsize = ((struct mdesc *) heap)->heapsize;
+ auto heaplimit = heap->heaplimit;
+ this->heapsize = heap->heapsize;
this->to_ignore = i;
this->equals_to.assign(heaplimit * MAX_FRAGMENT_PER_BLOCK, HeapArea());
this->types.assign(heaplimit * MAX_FRAGMENT_PER_BLOCK, nullptr);
std::vector<simgrid::mc::IgnoredHeapRegion>* i1,
std::vector<simgrid::mc::IgnoredHeapRegion>* i2)
{
- if ((((struct mdesc *) heap1)->heaplimit !=
- ((struct mdesc *) heap2)->heaplimit)
- ||
- ((((struct mdesc *) heap1)->heapsize !=
- ((struct mdesc *) heap2)->heapsize)))
+ if ((heap1->heaplimit != heap2->heaplimit) || (heap1->heapsize != heap2->heapsize))
return -1;
- this->heaplimit = ((struct mdesc *) heap1)->heaplimit;
+ this->heaplimit = heap1->heaplimit;
this->std_heap_copy = *mc_model_checker->process().get_heap();
this->processStates[0].initHeapInformation(heap1, i1);
this->processStates[1].initHeapInformation(heap2, i2);
int equal, res_compare = 0;
/* Check busy blocks */
-
i1 = 1;
malloc_info heapinfo_temp1, heapinfo_temp2;
}
i2++;
-
}
if (!equal) {
}
if (heapinfo2b->type < 0) {
- fprintf(stderr, "Unkown mmalloc block type.\n");
+ fprintf(stderr, "Unknown mmalloc block type.\n");
abort();
}
equal = 1;
break;
}
-
}
i2++;
-
}
if (!equal) {
nb_diff1++;
break;
}
-
}
i1++;
-
}
-
}
/* All blocks/fragments are equal to another block/fragment ? */
return compare_heap_area_without_type(state, process_index, real_area1, real_area2,
snapshot1, snapshot2, previous,
type->byte_size, check_ignore);
- return 0;
default:
return 0;
simgrid::mc::Process* process = &mc_model_checker->process();
int errors = 0;
- int res_init;
int hash_result = 0;
if (_sg_mc_hash) {
alloca(sizeof(struct mdesc)), sizeof(struct mdesc),
remote(process->heap_address),
simgrid::mc::ProcessIndexMissing, simgrid::mc::ReadOptions::lazy());
- res_init = state_comparator->initHeapInformation(
- heap1, heap2, &s1->to_ignore, &s2->to_ignore);
+ int res_init = state_comparator->initHeapInformation(heap1, heap2, &s1->to_ignore, &s2->to_ignore);
if (res_init == -1) {
#ifdef MC_DEBUG
std::string const& name = region1->object_info()->file_name;
/* Compare global variables */
- is_diff =
- compare_global_variables(*state_comparator,
- region1->object_info(), simgrid::mc::ProcessIndexDisabled,
- region1, region2, s1, s2);
+ if (compare_global_variables(*state_comparator, region1->object_info(), simgrid::mc::ProcessIndexDisabled, region1,
+ region2, s1, s2)) {
- if (is_diff != 0) {
#ifdef MC_DEBUG
XBT_DEBUG("(%d - %d) Different global variables in %s",
num1, num2, name.c_str());