Module: wine Branch: master Commit: 456e53bcf9122a2ea7a791831af492de642a803a URL: http://source.winehq.org/git/wine.git/?a=commit;h=456e53bcf9122a2ea7a791831a...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Jan 28 23:55:51 2010 +0100
mshtml: Optimize more nsAString handling.
---
dlls/mshtml/editor.c | 12 ++++++------ dlls/mshtml/htmlbody.c | 13 ++++--------- dlls/mshtml/htmldoc.c | 2 +- dlls/mshtml/htmldoc3.c | 11 +++++------ dlls/mshtml/htmldoc5.c | 2 +- dlls/mshtml/htmlelemcol.c | 2 +- dlls/mshtml/htmlevent.c | 2 +- 7 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c index 568e127..961bb91 100644 --- a/dlls/mshtml/editor.c +++ b/dlls/mshtml/editor.c @@ -298,7 +298,7 @@ static void get_font_size(HTMLDocument *This, WCHAR *ret)
TRACE("found font tag %p\n", elem);
- nsAString_Init(&size_str, sizeW); + nsAString_InitDepend(&size_str, sizeW); nsAString_Init(&val_str, NULL);
nsIDOMElement_GetAttribute(elem, &size_str, &val_str); @@ -360,10 +360,11 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size)
create_nselem(This->doc_node, fontW, &elem);
- nsAString_Init(&size_str, sizeW); - nsAString_Init(&val_str, size); + nsAString_InitDepend(&size_str, sizeW); + nsAString_InitDepend(&val_str, size);
nsIDOMElement_SetAttribute(elem, &size_str, &val_str); + nsAString_Finish(&val_str);
nsISelection_GetRangeAt(nsselection, 0, &range); nsISelection_GetIsCollapsed(nsselection, &collapsed); @@ -384,7 +385,6 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size) nsIDOMElement_Release(elem);
nsAString_Finish(&size_str); - nsAString_Finish(&val_str);
set_dirty(This, VARIANT_TRUE); } @@ -1167,8 +1167,8 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, /* create an element for the link */ create_nselem(This->doc_node, aW, &anchor_elem);
- nsAString_Init(&href_str, hrefW); - nsAString_Init(&ns_url, url); + nsAString_InitDepend(&href_str, hrefW); + nsAString_InitDepend(&ns_url, url); nsIDOMElement_SetAttribute(anchor_elem, &href_str, &ns_url); nsAString_Finish(&href_str);
diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c index 5c0f7ca..5c66e65 100644 --- a/dlls/mshtml/htmlbody.c +++ b/dlls/mshtml/htmlbody.c @@ -252,23 +252,18 @@ static HRESULT WINAPI HTMLBodyElement_Invoke(IHTMLBodyElement *iface, DISPID dis static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BSTR v) { HTMLBodyElement *This = HTMLBODY_THIS(iface); - HRESULT hr = S_OK; nsAString nsstr; nsresult nsres;
TRACE("(%p)->(%s)\n", This, debugstr_w(v));
- nsAString_Init(&nsstr, v); - + nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLBodyElement_SetBackground(This->nsbody, &nsstr); - if(!NS_SUCCEEDED(nsres)) - { - hr = E_FAIL; - } - nsAString_Finish(&nsstr); + if(NS_FAILED(nsres)) + return E_FAIL;
- return hr; + return S_OK; }
static HRESULT WINAPI HTMLBodyElement_get_background(IHTMLBodyElement *iface, BSTR *p) diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index ac67a84..538a02f 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -348,7 +348,7 @@ static HRESULT WINAPI HTMLDocument_put_title(IHTMLDocument2 *iface, BSTR v) return E_UNEXPECTED; }
- nsAString_Init(&nsstr, v); + nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLDocument_SetTitle(This->doc_node->nsdoc, &nsstr); nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) diff --git a/dlls/mshtml/htmldoc3.c b/dlls/mshtml/htmldoc3.c index de32302..9079bbc 100644 --- a/dlls/mshtml/htmldoc3.c +++ b/dlls/mshtml/htmldoc3.c @@ -116,7 +116,7 @@ static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR t return E_UNEXPECTED; }
- nsAString_Init(&text_str, text); + nsAString_InitDepend(&text_str, text); nsres = nsIDOMHTMLDocument_CreateTextNode(This->doc_node->nsdoc, &text_str, &nstext); nsAString_Finish(&text_str); if(NS_FAILED(nsres)) { @@ -443,7 +443,7 @@ static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v return E_UNEXPECTED; }
- nsAString_Init(&id_str, v); + nsAString_InitDepend(&id_str, v); /* get element by id attribute */ nsres = nsIDOMHTMLDocument_GetElementById(This->doc_node->nsdoc, &id_str, &nselem); if(FAILED(nsres)) { @@ -455,9 +455,9 @@ static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v
/* get first element by name attribute */ nsres = nsIDOMHTMLDocument_GetElementsByName(This->doc_node->nsdoc, &id_str, &nsnode_list); + nsAString_Finish(&id_str); if(FAILED(nsres)) { ERR("getElementsByName failed: %08x\n", nsres); - nsAString_Finish(&id_str); if(nsnode_by_id) nsIDOMNode_Release(nsnode_by_id); return E_FAIL; @@ -465,7 +465,6 @@ static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v nsIDOMNodeList_Item(nsnode_list, 0, &nsnode_by_name); nsIDOMNodeList_Release(nsnode_list);
- nsAString_Finish(&id_str);
if(nsnode_by_name && nsnode_by_id) { nsIDOM3Node *node3; @@ -528,8 +527,8 @@ static HRESULT WINAPI HTMLDocument3_getElementsByTagName(IHTMLDocument3 *iface, return E_UNEXPECTED; }
- nsAString_Init(&id_str, v); - nsAString_Init(&ns_str, str); + nsAString_InitDepend(&id_str, v); + nsAString_InitDepend(&ns_str, str); nsres = nsIDOMHTMLDocument_GetElementsByTagNameNS(This->doc_node->nsdoc, &ns_str, &id_str, &nslist); nsAString_Finish(&id_str); nsAString_Finish(&ns_str); diff --git a/dlls/mshtml/htmldoc5.c b/dlls/mshtml/htmldoc5.c index e3b1423..12742f6 100644 --- a/dlls/mshtml/htmldoc5.c +++ b/dlls/mshtml/htmldoc5.c @@ -136,7 +136,7 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs return E_UNEXPECTED; }
- nsAString_Init(&str, bstrdata); + nsAString_InitDepend(&str, bstrdata); nsres = nsIDOMHTMLDocument_CreateComment(This->doc_node->nsdoc, &str, &nscomment); nsAString_Finish(&str); if(NS_FAILED(nsres)) { diff --git a/dlls/mshtml/htmlelemcol.c b/dlls/mshtml/htmlelemcol.c index c973707..9c0fedd 100644 --- a/dlls/mshtml/htmlelemcol.c +++ b/dlls/mshtml/htmlelemcol.c @@ -245,7 +245,7 @@ static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name) return TRUE; }
- nsAString_Init(&nsname, nameW); + nsAString_InitDepend(&nsname, nameW); nsres = nsIDOMHTMLElement_GetAttribute(elem->nselem, &nsname, &nsstr); nsAString_Finish(&nsname); if(NS_SUCCEEDED(nsres)) { diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 5184391..3ff41a6 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -743,7 +743,7 @@ static IHTMLEventObj *create_event(HTMLDOMNode *target, eventid_t eid, nsIDOMEve if(NS_SUCCEEDED(nsres)) { nsAString type_str;
- nsAString_Init(&type_str, event_types[event_info[eid].type]); + nsAString_InitDepend(&type_str, event_types[event_info[eid].type]); nsres = nsIDOMDocumentEvent_CreateEvent(doc_event, &type_str, &ret->nsevent); nsAString_Finish(&type_str); nsIDOMDocumentEvent_Release(doc_event);