From efb50a3f089eeaa7658de870795f02e0c1c37a78 Mon Sep 17 00:00:00 2001 From: "rods%netscape.com" Date: Sat, 12 Feb 2000 16:24:19 +0000 Subject: [PATCH] converted over to use nsCOMPtr and changed return code back to NS_OK for GetAttr part of bug 21945 work, r=pollmann --- .../html/content/src/nsHTMLOptionElement.cpp | 55 ++++++++++--------- .../html/content/src/nsHTMLOptionElement.cpp | 55 ++++++++++--------- 2 files changed, 60 insertions(+), 50 deletions(-) diff --git a/content/html/content/src/nsHTMLOptionElement.cpp b/content/html/content/src/nsHTMLOptionElement.cpp index b232a202aa61..3c2a9d757fa4 100644 --- a/content/html/content/src/nsHTMLOptionElement.cpp +++ b/content/html/content/src/nsHTMLOptionElement.cpp @@ -51,6 +51,7 @@ #include "nsIPresShell.h" #include "nsIFrame.h" #include "nsIDOMHTMLSelectElement.h" +#include "nsCOMPtr.h" static NS_DEFINE_IID(kIDOMHTMLSelectElementIID, NS_IDOMHTMLSELECTELEMENT_IID); @@ -299,7 +300,8 @@ NS_IMPL_STRING_ATTR(nsHTMLOptionElement, Value, value) NS_IMETHODIMP nsHTMLOptionElement::GetLabel(nsString& aValue) { - return mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::label, aValue); + mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::label, aValue); + return NS_OK; } NS_IMETHODIMP @@ -317,7 +319,7 @@ nsHTMLOptionElement::SetLabel(const nsString& aValue) } } } - return result; + return NS_OK; } NS_IMETHODIMP @@ -473,11 +475,11 @@ nsHTMLOptionElement::GetText(nsString& aText) return rv; } for (PRInt32 i = 0; i < numNodes; i++) { - nsIContent* node; + nsIContent* node = nsnull; rv = ChildAt(i, node); - if (NS_SUCCEEDED(rv)) { - nsIDOMText* domText = nsnull; - rv = node->QueryInterface(kIDOMTextIID, (void**)&domText); + if (NS_SUCCEEDED(rv) && node) { + nsCOMPtr domText; + rv = node->QueryInterface(kIDOMTextIID, (void**)getter_AddRefs(domText)); if (NS_SUCCEEDED(rv) && domText) { rv = domText->GetData(aText); // the option could be all spaces, so compress the white space @@ -489,14 +491,14 @@ nsHTMLOptionElement::GetText(nsString& aText) aText = compressText; } } - NS_RELEASE(domText); NS_RELEASE(node); break; } NS_RELEASE(node); } } - return rv; + + return NS_OK; } NS_IMETHODIMP @@ -508,46 +510,49 @@ nsHTMLOptionElement::SetText(const nsString& aText) if (NS_FAILED(result)) { return result; } - nsIDOMText* domText = nsnull; + for (PRInt32 i = 0; i < numNodes; i++) { - nsIContent* node; + nsIContent * node = nsnull; result = ChildAt(i, node); - if (NS_SUCCEEDED(result)) { - result = node->QueryInterface(kIDOMTextIID, (void**)&domText); + if (NS_SUCCEEDED(result) && node) { + nsCOMPtr domText; + result = node->QueryInterface(kIDOMTextIID, (void**)getter_AddRefs(domText)); if (NS_SUCCEEDED(result) && domText) { result = domText->SetData(aText); - if (NS_SUCCEEDED(result)) usedExistingTextNode = PR_TRUE; - NS_RELEASE(domText); - NS_RELEASE(node); + if (NS_SUCCEEDED(result)) { + usedExistingTextNode = PR_TRUE; + } + NS_RELEASE(node); break; } NS_RELEASE(node); } } + if (!usedExistingTextNode) { - nsIContent* text; - result = NS_NewTextNode(&text); + nsCOMPtr text; + result = NS_NewTextNode(getter_AddRefs(text)); if (NS_OK == result) { nsIDOMText* domtext; result = text->QueryInterface(kIDOMTextIID, (void**)&domtext); - if (NS_OK == result) { + if (NS_SUCCEEDED(result) && domtext) { result = domtext->SetData(aText); - if (NS_SUCCEEDED(result)) { + if (NS_SUCCEEDED(result)) { result = AppendChildTo(text, PR_FALSE); if (NS_SUCCEEDED(result)) { nsIDocument * doc; result = GetDocument(doc); if (NS_SUCCEEDED(result)) { text->SetDocument(doc, PR_FALSE); - NS_IF_RELEASE(doc); - } - } - } + NS_IF_RELEASE(doc); + } + } + } NS_RELEASE(domtext); } - NS_RELEASE(text); } } + if (NS_SUCCEEDED(result)) { nsIFormControlFrame* fcFrame = nsnull; result = GetPrimaryFrame(fcFrame); @@ -559,7 +564,7 @@ nsHTMLOptionElement::SetText(const nsString& aText) } } } - return result; + return NS_OK; } // Options don't have frames - get the select content node diff --git a/layout/html/content/src/nsHTMLOptionElement.cpp b/layout/html/content/src/nsHTMLOptionElement.cpp index b232a202aa61..3c2a9d757fa4 100644 --- a/layout/html/content/src/nsHTMLOptionElement.cpp +++ b/layout/html/content/src/nsHTMLOptionElement.cpp @@ -51,6 +51,7 @@ #include "nsIPresShell.h" #include "nsIFrame.h" #include "nsIDOMHTMLSelectElement.h" +#include "nsCOMPtr.h" static NS_DEFINE_IID(kIDOMHTMLSelectElementIID, NS_IDOMHTMLSELECTELEMENT_IID); @@ -299,7 +300,8 @@ NS_IMPL_STRING_ATTR(nsHTMLOptionElement, Value, value) NS_IMETHODIMP nsHTMLOptionElement::GetLabel(nsString& aValue) { - return mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::label, aValue); + mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::label, aValue); + return NS_OK; } NS_IMETHODIMP @@ -317,7 +319,7 @@ nsHTMLOptionElement::SetLabel(const nsString& aValue) } } } - return result; + return NS_OK; } NS_IMETHODIMP @@ -473,11 +475,11 @@ nsHTMLOptionElement::GetText(nsString& aText) return rv; } for (PRInt32 i = 0; i < numNodes; i++) { - nsIContent* node; + nsIContent* node = nsnull; rv = ChildAt(i, node); - if (NS_SUCCEEDED(rv)) { - nsIDOMText* domText = nsnull; - rv = node->QueryInterface(kIDOMTextIID, (void**)&domText); + if (NS_SUCCEEDED(rv) && node) { + nsCOMPtr domText; + rv = node->QueryInterface(kIDOMTextIID, (void**)getter_AddRefs(domText)); if (NS_SUCCEEDED(rv) && domText) { rv = domText->GetData(aText); // the option could be all spaces, so compress the white space @@ -489,14 +491,14 @@ nsHTMLOptionElement::GetText(nsString& aText) aText = compressText; } } - NS_RELEASE(domText); NS_RELEASE(node); break; } NS_RELEASE(node); } } - return rv; + + return NS_OK; } NS_IMETHODIMP @@ -508,46 +510,49 @@ nsHTMLOptionElement::SetText(const nsString& aText) if (NS_FAILED(result)) { return result; } - nsIDOMText* domText = nsnull; + for (PRInt32 i = 0; i < numNodes; i++) { - nsIContent* node; + nsIContent * node = nsnull; result = ChildAt(i, node); - if (NS_SUCCEEDED(result)) { - result = node->QueryInterface(kIDOMTextIID, (void**)&domText); + if (NS_SUCCEEDED(result) && node) { + nsCOMPtr domText; + result = node->QueryInterface(kIDOMTextIID, (void**)getter_AddRefs(domText)); if (NS_SUCCEEDED(result) && domText) { result = domText->SetData(aText); - if (NS_SUCCEEDED(result)) usedExistingTextNode = PR_TRUE; - NS_RELEASE(domText); - NS_RELEASE(node); + if (NS_SUCCEEDED(result)) { + usedExistingTextNode = PR_TRUE; + } + NS_RELEASE(node); break; } NS_RELEASE(node); } } + if (!usedExistingTextNode) { - nsIContent* text; - result = NS_NewTextNode(&text); + nsCOMPtr text; + result = NS_NewTextNode(getter_AddRefs(text)); if (NS_OK == result) { nsIDOMText* domtext; result = text->QueryInterface(kIDOMTextIID, (void**)&domtext); - if (NS_OK == result) { + if (NS_SUCCEEDED(result) && domtext) { result = domtext->SetData(aText); - if (NS_SUCCEEDED(result)) { + if (NS_SUCCEEDED(result)) { result = AppendChildTo(text, PR_FALSE); if (NS_SUCCEEDED(result)) { nsIDocument * doc; result = GetDocument(doc); if (NS_SUCCEEDED(result)) { text->SetDocument(doc, PR_FALSE); - NS_IF_RELEASE(doc); - } - } - } + NS_IF_RELEASE(doc); + } + } + } NS_RELEASE(domtext); } - NS_RELEASE(text); } } + if (NS_SUCCEEDED(result)) { nsIFormControlFrame* fcFrame = nsnull; result = GetPrimaryFrame(fcFrame); @@ -559,7 +564,7 @@ nsHTMLOptionElement::SetText(const nsString& aText) } } } - return result; + return NS_OK; } // Options don't have frames - get the select content node