diff --git a/accessible/src/html/nsHTMLSelectAccessible.cpp b/accessible/src/html/nsHTMLSelectAccessible.cpp index 3c74077d1a8b..9e7e860f8cb9 100644 --- a/accessible/src/html/nsHTMLSelectAccessible.cpp +++ b/accessible/src/html/nsHTMLSelectAccessible.cpp @@ -495,10 +495,11 @@ NS_IMETHODIMP nsHTMLSelectOptionAccessible::GetName(nsAString& aName) // CASE #1 -- great majority of the cases // find the label attribute - this is what the W3C says we should use nsCOMPtr domElement(do_QueryInterface(mDOMNode)); - NS_ASSERTION(domElement, "No domElement for accessible DOM node!"); - nsresult rv = domElement->GetAttribute(NS_LITERAL_STRING("label"), aName) ; + if (!domElement) + return NS_ERROR_FAILURE; - if (NS_SUCCEEDED(rv) && !aName.IsEmpty() ) { + nsresult rv = domElement->GetAttribute(NS_LITERAL_STRING("label"), aName) ; + if (NS_SUCCEEDED(rv) && !aName.IsEmpty()) { return NS_OK; } @@ -512,16 +513,17 @@ NS_IMETHODIMP nsHTMLSelectOptionAccessible::GetName(nsAString& aName) if (text && text->IsNodeOfType(nsINode::eTEXT)) { nsAutoString txtValue; rv = AppendFlatStringFromContentNode(text, &txtValue); - if (NS_SUCCEEDED(rv)) { - // Temp var (txtValue) needed until CompressWhitespace built for nsAString - txtValue.CompressWhitespace(); - aName.Assign(txtValue); - return NS_OK; - } + NS_ENSURE_SUCCESS(rv, rv); + + // Temp var (txtValue) needed until CompressWhitespace built for nsAString + txtValue.CompressWhitespace(); + aName.Assign(txtValue); + return NS_OK; } } - return NS_ERROR_FAILURE; + aName.Truncate(); + return NS_OK; } nsresult @@ -805,8 +807,8 @@ void nsHTMLSelectOptionAccessible::SelectionChangedIfOption(nsIContent *aPossibl multiSelect, nsnull); PRUint32 state = State(optionAccessible); PRUint32 eventType = (state & nsIAccessibleStates::STATE_SELECTED) ? - nsIAccessibleEvent::EVENT_SELECTION_ADD : - nsIAccessibleEvent::EVENT_SELECTION_REMOVE; + PRUint32(nsIAccessibleEvent::EVENT_SELECTION_ADD) : + PRUint32(nsIAccessibleEvent::EVENT_SELECTION_REMOVE); privateMultiSelect->FireToolkitEvent(eventType, optionAccessible, nsnull); }