diff --git a/mozilla/layout/html/document/src/nsFrameFrame.cpp b/mozilla/layout/html/document/src/nsFrameFrame.cpp index 7e53429eacb..db64bd6d0d1 100644 --- a/mozilla/layout/html/document/src/nsFrameFrame.cpp +++ b/mozilla/layout/html/document/src/nsFrameFrame.cpp @@ -893,17 +893,17 @@ nsHTMLFrameInnerFrame::GetDocShell(nsIDocShell **aDocShell) { *aDocShell = nsnull; - nsIFrame* parent = nsnull; - GetParent(&parent); + nsCOMPtr content; + GetParentContent(getter_AddRefs(content)); + + if (!content) { + // Hmm, no content in this frame (or in the parent, really), + // that's odd, not much to be done here then. - if (!parent) { return NS_OK; } if (!mFrameLoader) { - nsCOMPtr content; - parent->GetContent(getter_AddRefs(content)); - nsCOMPtr frame_loader_owner = do_QueryInterface(content); @@ -912,18 +912,18 @@ nsHTMLFrameInnerFrame::GetDocShell(nsIDocShell **aDocShell) } if (!mFrameLoader) { - // No frame loader available from the content, create our own... - nsresult rv = NS_OK; + + // No frame loader available from the content, create our own... mFrameLoader = do_CreateInstance(NS_FRAMELOADER_CONTRACTID, &rv); NS_ENSURE_SUCCESS(rv, rv); mFrameLoader->Init(content); - // ... and tell it to start loading. - + // ... and tell it to start loading... mFrameLoader->LoadFrame(); + // ... and remember that we own this frame loader. mOwnsFrameLoader = PR_TRUE; } }