Bug 1392870 - Avoid using nsINode::GetChildAt() in HTMLEditRules::DeleteNonTableElements(); r=masayuki

This commit is contained in:
Ehsan Akhgari 2017-08-22 22:15:23 -04:00
Родитель e7f2972a7f
Коммит 31e4d33b89
1 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -3105,8 +3105,14 @@ HTMLEditRules::DeleteNonTableElements(nsINode* aNode)
return mHTMLEditor->DeleteNode(aNode->AsDOMNode());
}
for (int32_t i = aNode->GetChildCount() - 1; i >= 0; --i) {
nsresult rv = DeleteNonTableElements(aNode->GetChildAt(i));
AutoTArray<nsCOMPtr<nsIContent>, 10> childList;
for (nsIContent* child = aNode->GetFirstChild();
child; child = child->GetNextSibling()) {
childList.AppendElement(child);
}
for (const auto& child: childList) {
nsresult rv = DeleteNonTableElements(child);
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;