Bug 1291707 part 1 - Change nsGenConList::Remove to Destroy and make it private. r=bz
MozReview-Commit-ID: FxXizoXjRoh
--- a/layout/base/nsGenConList.cpp
+++ b/layout/base/nsGenConList.cpp
@@ -14,18 +14,17 @@ void
nsGenConList::Clear()
{
//Delete entire list
if (!mFirstNode)
return;
for (nsGenConNode *node = Next(mFirstNode); node != mFirstNode;
node = Next(mFirstNode))
{
- Remove(node);
- delete node;
+ Destroy(node);
}
delete mFirstNode;
mFirstNode = nullptr;
mSize = 0;
}
bool
@@ -34,33 +33,31 @@ nsGenConList::DestroyNodesFor(nsIFrame*
if (!mFirstNode)
return false; // list empty
nsGenConNode* node;
bool destroyed = false;
while (mFirstNode->mPseudoFrame == aFrame) {
destroyed = true;
node = Next(mFirstNode);
bool isLastNode = node == mFirstNode; // before they're dangling
- Remove(mFirstNode);
- delete mFirstNode;
+ Destroy(mFirstNode);
if (isLastNode) {
mFirstNode = nullptr;
return true;
}
else {
mFirstNode = node;
}
}
node = Next(mFirstNode);
while (node != mFirstNode) {
if (node->mPseudoFrame == aFrame) {
destroyed = true;
nsGenConNode *nextNode = Next(node);
- Remove(node);
- delete node;
+ Destroy(node);
node = nextNode;
} else {
node = Next(node);
}
}
return destroyed;
}
--- a/layout/base/nsGenConList.h
+++ b/layout/base/nsGenConList.h
@@ -97,13 +97,19 @@ public:
void Insert(nsGenConNode* aNode);
// returns whether any nodes have been destroyed
bool DestroyNodesFor(nsIFrame* aFrame); //destroy all nodes with aFrame as parent
// Return true if |aNode1| is after |aNode2|.
static bool NodeAfter(const nsGenConNode* aNode1,
const nsGenConNode* aNode2);
- void Remove(nsGenConNode* aNode) { PR_REMOVE_LINK(aNode); mSize--; }
bool IsLast(nsGenConNode* aNode) { return (Next(aNode) == mFirstNode); }
+private:
+ void Destroy(nsGenConNode* aNode)
+ {
+ PR_REMOVE_LINK(aNode);
+ delete aNode;
+ mSize--;
+ }
};
#endif /* nsGenConList_h___ */