diff --git a/accessible/src/html/nsHTMLTableAccessible.cpp b/accessible/src/html/nsHTMLTableAccessible.cpp
index db3c5be07715..e16fded2501d 100644
--- a/accessible/src/html/nsHTMLTableAccessible.cpp
+++ b/accessible/src/html/nsHTMLTableAccessible.cpp
@@ -857,29 +857,22 @@ nsHTMLTableAccessible::GetTableNode(nsIDOMNode **_retval)
}
nsresult
-nsHTMLTableAccessible::GetTableLayout(nsITableLayout **aLayoutObject)
+nsHTMLTableAccessible::GetTableLayout(nsITableLayout **aTableLayout)
{
- *aLayoutObject = nsnull;
-
- nsresult rv = NS_OK;
+ *aTableLayout = nsnull;
nsCOMPtr tableNode;
- rv = GetTableNode(getter_AddRefs(tableNode));
- NS_ENSURE_SUCCESS(rv, rv);
+ GetTableNode(getter_AddRefs(tableNode));
+ nsCOMPtr tableContent(do_QueryInterface(tableNode));
+ if (!tableContent) {
+ return NS_ERROR_FAILURE; // Table shut down
+ }
- nsCOMPtr content(do_QueryInterface(tableNode));
- NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
+ nsCOMPtr shell = GetPresShell();
+ NS_ENSURE_TRUE(shell, NS_ERROR_FAILURE);
- nsIDocument *doc = content->GetDocument();
- NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE);
-
- nsIPresShell *presShell = doc->GetPrimaryShell();
-
- nsCOMPtr layoutObject;
- rv = presShell->GetLayoutObjectFor(content, getter_AddRefs(layoutObject));
- NS_ENSURE_SUCCESS(rv, rv);
-
- return CallQueryInterface(layoutObject, aLayoutObject);
+ nsIFrame *frame = shell->GetPrimaryFrameFor(tableContent);
+ return frame ? CallQueryInterface(frame, aTableLayout) : NS_ERROR_FAILURE;
}
nsresult
diff --git a/layout/base/nsIPresShell.h b/layout/base/nsIPresShell.h
index 812292ce97c8..54513bb4d981 100644
--- a/layout/base/nsIPresShell.h
+++ b/layout/base/nsIPresShell.h
@@ -341,7 +341,7 @@ public:
* Returns a layout object associated with the primary frame for the content object.
*
* @param aContent the content object for which we seek a layout object
- * @param aResult the resulting layout object as an nsISupports, if found. Refcounted.
+ * @param aResult the resulting layout object as an nsISupports, if found.
*/
NS_IMETHOD GetLayoutObjectFor(nsIContent* aContent,
nsISupports** aResult) const = 0;