Skip to content

Commit

Permalink
Merge pull request #2287 from julienhenry/fix-btree-destructor
Browse files Browse the repository at this point in the history
fix btree destructors #2127
  • Loading branch information
b-scholz authored Aug 5, 2022
2 parents 201d3ac + 8f30dd5 commit 66b96fd
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/include/souffle/datastructure/BTreeDelete.h
Original file line number Diff line number Diff line change
Expand Up @@ -1660,12 +1660,16 @@ class btree_delete {
leftmost = nullptr;
res.cur = nullptr;
res.pos = 0;
delete static_cast<leaf_node*>(iter.cur);
} else {
// Whole tree now contained in child at position 0
root = iter.cur->getChild(0);
root->parent = nullptr;
for (unsigned i = 0; i <= iter.cur->asInnerNode().numElements; ++i) {
iter.cur->asInnerNode().children[i] = nullptr;
}
delete static_cast<inner_node*>(iter.cur);
}
delete iter.cur;
}
break;
}
Expand Down Expand Up @@ -1913,7 +1917,14 @@ class btree_delete {
left->numElements += right->getNumElements() + 1;

// Delete the right node
delete right;
if (right->isLeaf()) {
delete static_cast<leaf_node*>(right);
} else {
for (unsigned i = 0; i <= right->asInnerNode().numElements; ++i) {
right->asInnerNode().children[i] = nullptr;
}
delete static_cast<inner_node*>(right);
}
}

/**
Expand Down

0 comments on commit 66b96fd

Please sign in to comment.