diff --git a/accessible/xul/XULListboxAccessible.cpp b/accessible/xul/XULListboxAccessible.cpp index a8491f86c58d8..f427f5ccdf798 100644 --- a/accessible/xul/XULListboxAccessible.cpp +++ b/accessible/xul/XULListboxAccessible.cpp @@ -111,9 +111,13 @@ void XULListboxAccessible::Value(nsString& aValue) const { RefPtr element; select->GetSelectedItem(getter_AddRefs(element)); - nsCOMPtr selectedItem = - element->AsXULSelectControlItem(); - if (selectedItem) selectedItem->GetLabel(aValue); + if (element) { + nsCOMPtr selectedItem = + element->AsXULSelectControlItem(); + if (selectedItem) { + selectedItem->GetLabel(aValue); + } + } } } @@ -176,6 +180,9 @@ bool XULListboxAccessible::IsRowSelected(uint32_t aRowIdx) { RefPtr element; nsresult rv = control->GetItemAtIndex(aRowIdx, getter_AddRefs(element)); NS_ENSURE_SUCCESS(rv, false); + if (!element) { + return false; + } nsCOMPtr item = element->AsXULSelectControlItem(); @@ -337,6 +344,9 @@ void XULListboxAccessible::SelectRow(uint32_t aRowIdx) { RefPtr item; control->GetItemAtIndex(aRowIdx, getter_AddRefs(item)); + if (!item) { + return; + } nsCOMPtr itemElm = item->AsXULSelectControlItem(); @@ -351,6 +361,9 @@ void XULListboxAccessible::UnselectRow(uint32_t aRowIdx) { RefPtr item; control->GetItemAtIndex(aRowIdx, getter_AddRefs(item)); + if (!item) { + return; + } nsCOMPtr itemElm = item->AsXULSelectControlItem();