зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1403444 - Allow First and Last to take a start node, and use that in Next and Prev. r=njn
--HG-- extra : rebase_source : a2d00f91ad98e7bd1478624a0a9b374de52f543b
This commit is contained in:
Родитель
d4ac54ef7d
Коммит
3c5e2cba4f
|
@ -515,17 +515,17 @@ struct RedBlackTree
|
|||
Trait::GetTreeNode(&rbt_nil).SetColor(NodeColor::Black);
|
||||
}
|
||||
|
||||
T* First()
|
||||
T* First(T* aStart = nullptr)
|
||||
{
|
||||
T* ret;
|
||||
rbp_first(T, Trait::GetTreeNode, this, rbt_root, (ret));
|
||||
rbp_first(T, Trait::GetTreeNode, this, (aStart ? aStart : rbt_root), (ret));
|
||||
return (ret == &rbt_nil) ? nullptr : ret;
|
||||
}
|
||||
|
||||
T* Last()
|
||||
T* Last(T* aStart = nullptr)
|
||||
{
|
||||
T* ret;
|
||||
rbp_last(T, Trait::GetTreeNode, this, rbt_root, ret);
|
||||
rbp_last(T, Trait::GetTreeNode, this, (aStart ? aStart : rbt_root), ret);
|
||||
return (ret == &rbt_nil) ? nullptr : ret;
|
||||
}
|
||||
|
||||
|
@ -533,8 +533,7 @@ struct RedBlackTree
|
|||
{
|
||||
T* ret;
|
||||
if (Trait::GetTreeNode(aNode).Right() != &rbt_nil) {
|
||||
rbp_first(
|
||||
T, Trait::GetTreeNode, this, Trait::GetTreeNode(aNode).Right(), (ret));
|
||||
ret = First(Trait::GetTreeNode(aNode).Right());
|
||||
} else {
|
||||
T* rbp_n_t = rbt_root;
|
||||
MOZ_ASSERT(rbp_n_t != &rbt_nil);
|
||||
|
@ -559,8 +558,7 @@ struct RedBlackTree
|
|||
{
|
||||
T* ret;
|
||||
if (Trait::GetTreeNode(aNode).Left() != &rbt_nil) {
|
||||
rbp_last(
|
||||
T, Trait::GetTreeNode, this, Trait::GetTreeNode(aNode).Left(), (ret));
|
||||
ret = Last(Trait::GetTreeNode(aNode).Left());
|
||||
} else {
|
||||
T* rbp_p_t = rbt_root;
|
||||
MOZ_ASSERT(rbp_p_t != &rbt_nil);
|
||||
|
|
Загрузка…
Ссылка в новой задаче