fix a bug when deleting node and CHILDREN_PER_NODE is even
git-svn-id: https://svn.musicpd.org/mpd/trunk@4508 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
42390c5e3b
commit
4ff98a9a94
@ -433,7 +433,7 @@ _DeleteAt(TreeIterator * iter)
|
||||
node->data[--node->dataCount] = NULL;
|
||||
|
||||
// merge the nodes from the bottom up which have too few data
|
||||
while (node->dataCount < (CHILDREN_PER_NODE/2))
|
||||
while (node->dataCount < (DATA_PER_NODE/2))
|
||||
{
|
||||
// if we're not the root
|
||||
if (node->parent)
|
||||
@ -443,7 +443,7 @@ _DeleteAt(TreeIterator * iter)
|
||||
|
||||
// check siblings for extra data
|
||||
if (pos < node->parent->dataCount &&
|
||||
(*(child+1))->dataCount > (CHILDREN_PER_NODE/2))
|
||||
(*(child+1))->dataCount > (DATA_PER_NODE/2))
|
||||
{
|
||||
child++;
|
||||
node->data[node->dataCount++] =
|
||||
@ -470,7 +470,7 @@ _DeleteAt(TreeIterator * iter)
|
||||
(*child)->dataCount--;
|
||||
}
|
||||
else if (pos > 0 &&
|
||||
(*(child-1))->dataCount>(CHILDREN_PER_NODE/2))
|
||||
(*(child-1))->dataCount>(DATA_PER_NODE/2))
|
||||
{
|
||||
child--;
|
||||
int i = node->dataCount++;
|
||||
|
Loading…
Reference in New Issue
Block a user