- if (!this->heap) {
- this->heap = (struct mdesc*) malloc(sizeof(struct mdesc));
- }
- this->read_bytes(this->heap, sizeof(struct mdesc), remote(this->heap_address),
- simgrid::mc::ProcessIndexDisabled);
+ if (!this->heap)
+ this->heap = std::unique_ptr<s_xbt_mheap_t>(new s_xbt_mheap_t());
+ this->read_bytes(this->heap.get(), sizeof(struct mdesc),
+ remote(this->heap_address), simgrid::mc::ProcessIndexDisabled);