diff --git a/content/html/content/src/nsGenericHTMLElement.cpp b/content/html/content/src/nsGenericHTMLElement.cpp
index 258510114630..145495640f66 100644
--- a/content/html/content/src/nsGenericHTMLElement.cpp
+++ b/content/html/content/src/nsGenericHTMLElement.cpp
@@ -624,13 +624,20 @@ nsGenericHTMLElement::GetOffsetHeight(PRInt32* aOffsetHeight)
nsresult
nsGenericHTMLElement::GetOffsetParent(nsIDOMElement** aOffsetParent)
{
+ NS_ENSURE_ARG_POINTER(aOffsetParent);
+
nsRect rcFrame;
nsCOMPtr parent;
nsresult res = GetOffsetRect(rcFrame,
nsHTMLAtoms::body,
getter_AddRefs(parent));
if (NS_SUCCEEDED(res)) {
- res = parent->QueryInterface(NS_GET_IID(nsIDOMElement), (void**)aOffsetParent);
+ if (parent) {
+ res = parent->QueryInterface(NS_GET_IID(nsIDOMElement),
+ (void**)aOffsetParent);
+ } else {
+ *aOffsetParent = nsnull;
+ }
}
return res;
}
diff --git a/layout/html/content/src/nsGenericHTMLElement.cpp b/layout/html/content/src/nsGenericHTMLElement.cpp
index 258510114630..145495640f66 100644
--- a/layout/html/content/src/nsGenericHTMLElement.cpp
+++ b/layout/html/content/src/nsGenericHTMLElement.cpp
@@ -624,13 +624,20 @@ nsGenericHTMLElement::GetOffsetHeight(PRInt32* aOffsetHeight)
nsresult
nsGenericHTMLElement::GetOffsetParent(nsIDOMElement** aOffsetParent)
{
+ NS_ENSURE_ARG_POINTER(aOffsetParent);
+
nsRect rcFrame;
nsCOMPtr parent;
nsresult res = GetOffsetRect(rcFrame,
nsHTMLAtoms::body,
getter_AddRefs(parent));
if (NS_SUCCEEDED(res)) {
- res = parent->QueryInterface(NS_GET_IID(nsIDOMElement), (void**)aOffsetParent);
+ if (parent) {
+ res = parent->QueryInterface(NS_GET_IID(nsIDOMElement),
+ (void**)aOffsetParent);
+ } else {
+ *aOffsetParent = nsnull;
+ }
}
return res;
}