diff --git a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp
index 1433fb45092..738ebf2e1bf 100644
--- a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp
+++ b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp
@@ -297,19 +297,28 @@ NS_IMETHODIMP
nsHTMLOptionElement::GetText(nsString& aText)
{
aText.SetLength(0);
- nsIDOMNode* node = nsnull;
- nsresult result = mInner.GetFirstChild(&node);
- if ((NS_OK == result) && node) {
- nsIDOMText* domText = nsnull;
- result = node->QueryInterface(kIDOMTextIID, (void**)&domText);
- if ((NS_OK == result) && domText) {
- result = domText->GetData(aText);
- aText.CompressWhitespace(PR_TRUE, PR_TRUE);
- NS_RELEASE(domText);
- }
- NS_RELEASE(node);
+ PRInt32 numNodes;
+ nsresult rv = mInner.ChildCount(numNodes);
+ if (NS_FAILED(rv)) {
+ return rv;
}
- return result;
+ for (PRInt32 i = 0; i < numNodes; i++) {
+ nsIContent* node;
+ rv = ChildAt(i, node);
+ if (NS_SUCCEEDED(rv)) {
+ nsIDOMText* domText = nsnull;
+ rv = node->QueryInterface(kIDOMTextIID, (void**)&domText);
+ if (NS_SUCCEEDED(rv) && domText) {
+ rv = domText->GetData(aText);
+ aText.CompressWhitespace(PR_TRUE, PR_TRUE);
+ NS_RELEASE(domText);
+ NS_RELEASE(node);
+ break;
+ }
+ NS_RELEASE(node);
+ }
+ }
+ return NS_OK;
}
NS_IMETHODIMP
diff --git a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp
index 1433fb45092..738ebf2e1bf 100644
--- a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp
+++ b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp
@@ -297,19 +297,28 @@ NS_IMETHODIMP
nsHTMLOptionElement::GetText(nsString& aText)
{
aText.SetLength(0);
- nsIDOMNode* node = nsnull;
- nsresult result = mInner.GetFirstChild(&node);
- if ((NS_OK == result) && node) {
- nsIDOMText* domText = nsnull;
- result = node->QueryInterface(kIDOMTextIID, (void**)&domText);
- if ((NS_OK == result) && domText) {
- result = domText->GetData(aText);
- aText.CompressWhitespace(PR_TRUE, PR_TRUE);
- NS_RELEASE(domText);
- }
- NS_RELEASE(node);
+ PRInt32 numNodes;
+ nsresult rv = mInner.ChildCount(numNodes);
+ if (NS_FAILED(rv)) {
+ return rv;
}
- return result;
+ for (PRInt32 i = 0; i < numNodes; i++) {
+ nsIContent* node;
+ rv = ChildAt(i, node);
+ if (NS_SUCCEEDED(rv)) {
+ nsIDOMText* domText = nsnull;
+ rv = node->QueryInterface(kIDOMTextIID, (void**)&domText);
+ if (NS_SUCCEEDED(rv) && domText) {
+ rv = domText->GetData(aText);
+ aText.CompressWhitespace(PR_TRUE, PR_TRUE);
+ NS_RELEASE(domText);
+ NS_RELEASE(node);
+ break;
+ }
+ NS_RELEASE(node);
+ }
+ }
+ return NS_OK;
}
NS_IMETHODIMP