Jacek Caban : mshtml: Use get_elem_attr_value helper in check_event_attr.

Alexandre Julliard julliard at winehq.org
Wed Jun 11 13:36:22 CDT 2014


Module: wine
Branch: master
Commit: df62eea18639ca985ce740d0b7d10e9c6b0b4b50
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=df62eea18639ca985ce740d0b7d10e9c6b0b4b50

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue May 27 11:29:37 2014 +0200

mshtml: Use get_elem_attr_value helper in check_event_attr.

---

 dlls/mshtml/htmlevent.c |   15 ++++-----------
 dlls/mshtml/htmlevent.h |    2 +-
 dlls/mshtml/mutation.c  |    6 +++---
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index ee384ee..484f3f7 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -1523,24 +1523,19 @@ void update_cp_events(HTMLInnerWindow *window, event_target_t **event_target_ptr
     }
 }
 
-void check_event_attr(HTMLDocumentNode *doc, nsIDOMElement *nselem)
+void check_event_attr(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
 {
     const PRUnichar *attr_value;
-    nsAString attr_name_str, attr_value_str;
+    nsAString attr_value_str;
     IDispatch *disp;
     HTMLDOMNode *node;
     int i;
     nsresult nsres;
     HRESULT hres;
 
-    nsAString_Init(&attr_value_str, NULL);
-    nsAString_Init(&attr_name_str, NULL);
-
     for(i=0; i < EVENTID_LAST; i++) {
-        nsAString_SetData(&attr_name_str, event_info[i].attr_name);
-        nsres = nsIDOMElement_GetAttribute(nselem, &attr_name_str, &attr_value_str);
+        nsres = get_elem_attr_value(nselem, event_info[i].attr_name, &attr_value_str, &attr_value);
         if(NS_SUCCEEDED(nsres)) {
-            nsAString_GetData(&attr_value_str, &attr_value);
             if(!*attr_value)
                 continue;
 
@@ -1555,11 +1550,9 @@ void check_event_attr(HTMLDocumentNode *doc, nsIDOMElement *nselem)
                 }
                 IDispatch_Release(disp);
             }
+            nsAString_Finish(&attr_value_str);
         }
     }
-
-    nsAString_Finish(&attr_value_str);
-    nsAString_Finish(&attr_name_str);
 }
 
 HRESULT doc_init_events(HTMLDocumentNode *doc)
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index 528eded..d2426d3 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -49,7 +49,7 @@ typedef enum {
 } eventid_t;
 
 eventid_t str_to_eid(LPCWSTR) DECLSPEC_HIDDEN;
-void check_event_attr(HTMLDocumentNode*,nsIDOMElement*) DECLSPEC_HIDDEN;
+void check_event_attr(HTMLDocumentNode*,nsIDOMHTMLElement*) DECLSPEC_HIDDEN;
 void release_event_target(event_target_t*) DECLSPEC_HIDDEN;
 void fire_event(HTMLDocumentNode*,eventid_t,BOOL,nsIDOMNode*,nsIDOMEvent*,IDispatch*) DECLSPEC_HIDDEN;
 HRESULT set_event_handler(event_target_t**,HTMLDocumentNode*,eventid_t,VARIANT*) DECLSPEC_HIDDEN;
diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c
index 23b37b5..b79ec1f 100644
--- a/dlls/mshtml/mutation.c
+++ b/dlls/mshtml/mutation.c
@@ -638,16 +638,16 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
     nsIDOMHTMLIFrameElement *nsiframe;
     nsIDOMHTMLFrameElement *nsframe;
     nsIDOMHTMLScriptElement *nsscript;
+    nsIDOMHTMLElement *nselem;
     nsIDOMComment *nscomment;
-    nsIDOMElement *nselem;
     nsresult nsres;
 
     TRACE("(%p)->(%p %p)\n", This, aDocument, aContent);
 
-    nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMElement, (void**)&nselem);
+    nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMHTMLElement, (void**)&nselem);
     if(NS_SUCCEEDED(nsres)) {
         check_event_attr(This, nselem);
-        nsIDOMElement_Release(nselem);
+        nsIDOMHTMLElement_Release(nselem);
     }
 
     nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMComment, (void**)&nscomment);




More information about the wine-cvs mailing list