Must use |GetEnumerator|; can't QI a selection to get the enumerator. Fixes bug #24354. Also fixes a leak in the same routine. r=buster, a={chofmann, brendan}

This commit is contained in:
scc%netscape.com 2000-01-19 22:56:25 +00:00
Родитель 73fa5568be
Коммит 5c3b4478ed
2 изменённых файлов: 4 добавлений и 4 удалений

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

@ -602,8 +602,8 @@ nsGenericDOMDataNode::ConvertContentToXIF(nsXIFConverter& aConverter) const
if (sel != nsnull && mDocument->IsInSelection(sel,content)) if (sel != nsnull && mDocument->IsInSelection(sel,content))
{ {
nsIEnumerator *enumerator; nsCOMPtr<nsIEnumerator> enumerator;
if (NS_SUCCEEDED(sel->QueryInterface(kIEnumeratorIID, (void **)&enumerator))) { if (NS_SUCCEEDED(sel->GetEnumerator(getter_AddRefs(enumerator)))) {
for (enumerator->First();NS_OK != enumerator->IsDone(); enumerator->Next()) { for (enumerator->First();NS_OK != enumerator->IsDone(); enumerator->Next()) {
nsIDOMRange* range = nsnull; nsIDOMRange* range = nsnull;
if (NS_SUCCEEDED(enumerator->CurrentItem((nsISupports**)&range))) { if (NS_SUCCEEDED(enumerator->CurrentItem((nsISupports**)&range))) {

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

@ -602,8 +602,8 @@ nsGenericDOMDataNode::ConvertContentToXIF(nsXIFConverter& aConverter) const
if (sel != nsnull && mDocument->IsInSelection(sel,content)) if (sel != nsnull && mDocument->IsInSelection(sel,content))
{ {
nsIEnumerator *enumerator; nsCOMPtr<nsIEnumerator> enumerator;
if (NS_SUCCEEDED(sel->QueryInterface(kIEnumeratorIID, (void **)&enumerator))) { if (NS_SUCCEEDED(sel->GetEnumerator(getter_AddRefs(enumerator)))) {
for (enumerator->First();NS_OK != enumerator->IsDone(); enumerator->Next()) { for (enumerator->First();NS_OK != enumerator->IsDone(); enumerator->Next()) {
nsIDOMRange* range = nsnull; nsIDOMRange* range = nsnull;
if (NS_SUCCEEDED(enumerator->CurrentItem((nsISupports**)&range))) { if (NS_SUCCEEDED(enumerator->CurrentItem((nsISupports**)&range))) {