diff --git a/mozilla/content/html/content/src/nsHTMLImageElement.cpp b/mozilla/content/html/content/src/nsHTMLImageElement.cpp index 0c2a71aa342..1384b6ff320 100644 --- a/mozilla/content/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLImageElement.cpp @@ -638,9 +638,12 @@ nsHTMLImageElement::GetCallerSourceURL(nsIURI** sourceURL) if (NS_FAILED(result)) return NS_ERROR_FAILURE; - JSContext *cx; + JSContext *cx = nsnull; - if (NS_FAILED(stack->Peek(&cx))) + // it's possible that there is not a JSContext on the stack. + // specifically this can happen when the DOM is being manipulated + // from native (non-JS) code. + if (NS_FAILED(stack->Peek(&cx)) || !cx) return NS_ERROR_FAILURE; nsCOMPtr global; @@ -1054,7 +1057,7 @@ nsHTMLImageElement::SetSrc(const nsAReadableString& aSrc) nsCOMPtr baseURL; nsresult result = NS_OK; - GetCallerSourceURL(getter_AddRefs(baseURL)); + (void) GetCallerSourceURL(getter_AddRefs(baseURL)); if (mDocument && !baseURL) { result = mDocument->GetBaseURL(*getter_AddRefs(baseURL));