Module: wine Branch: master Commit: 0bbc95e4f6f5776a6dfccc80878406cffc78de0f URL: http://source.winehq.org/git/wine.git/?a=commit;h=0bbc95e4f6f5776a6dfccc8087...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Aug 4 14:05:23 2011 +0200
mshtml: Fix DOCUMENT_NODE handling in nsnode_to_nsstring_rec.
---
dlls/mshtml/nsembed.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c index 33d34b9..2bebf8b 100644 --- a/dlls/mshtml/nsembed.c +++ b/dlls/mshtml/nsembed.c @@ -794,10 +794,12 @@ static HRESULT nsnode_to_nsstring_rec(nsIContentSerializer *serializer, nsIDOMNo return E_FAIL; }
- nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIContent, (void**)&nscontent); - if(NS_FAILED(nsres)) { - ERR("Could not get nsIDontent interface: %08x\n", nsres); - return E_FAIL; + if(type != DOCUMENT_NODE) { + nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIContent, (void**)&nscontent); + if(NS_FAILED(nsres)) { + ERR("Could not get nsIContent interface: %08x\n", nsres); + return E_FAIL; + } }
switch(type) { @@ -849,7 +851,8 @@ static HRESULT nsnode_to_nsstring_rec(nsIContentSerializer *serializer, nsIDOMNo if(type == ELEMENT_NODE) nsIContentSerializer_AppendElementEnd(serializer, nscontent, str);
- nsIContent_Release(nscontent); + if(type != DOCUMENT_NODE) + nsIContent_Release(nscontent); return S_OK; }