This prevents rbtree_delete from creating unbalanced/illegal rbtrees.
}
}
}
- X->Color = Black;
+ if (X != NIL) X->Color = Black; /* Avoid cache-dirty on NIL */
}
/*
Z->Data = Y->Data;
Y->Data = NULL;
- if (Y->Color == Black && X != NIL)
+ if (Y->Color == Black)
DeleteFixup(tree, X, Parent);
/*
} else {
if (tree->freeNode) tree->freeNode(Y->Data);
- if (Y->Color == Black && X != NIL)
+ if (Y->Color == Black)
DeleteFixup(tree, X, Parent);
free(Y);