Jacek Caban : mshtml: Always create event object in fire_event.

Alexandre Julliard julliard at winehq.org
Tue Sep 8 08:54:56 CDT 2009


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Sep  6 18:54:49 2009 +0200

mshtml: Always create event object in fire_event.

---

 dlls/mshtml/htmlevent.c |   19 +++++--------------
 1 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index df121b0..b2a1e01 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -499,18 +499,15 @@ void fire_event(HTMLDocument *doc, eventid_t eid, nsIDOMNode *target)
     }
 
     prev_event = doc->window->event;
+    event_obj = doc->window->event = create_event(get_node(doc, target, TRUE));
     nsnode = target;
     nsIDOMNode_AddRef(nsnode);
 
     while(1) {
         node = get_node(doc, nsnode, FALSE);
 
-        if(node) {
-            if(!event_obj)
-                event_obj = doc->window->event = create_event(get_node(doc, target, TRUE));
-
+        if(node)
             call_event_handlers(doc, node->event_target, eid, (IDispatch*)HTMLDOMNODE(node));
-        }
 
         if(!(event_info[eid].flags & EVENT_BUBBLE))
             break;
@@ -529,17 +526,11 @@ void fire_event(HTMLDocument *doc, eventid_t eid, nsIDOMNode *target)
     if(nsnode)
         nsIDOMNode_Release(nsnode);
 
-    if(event_info[eid].flags & EVENT_BUBBLE) {
-        if(!event_obj)
-            event_obj = doc->window->event = create_event(get_node(doc, target, TRUE));
-
+    if(event_info[eid].flags & EVENT_BUBBLE)
         call_event_handlers(doc, doc->event_target, eid, (IDispatch*)HTMLDOC(doc));
-    }
 
-    if(event_obj) {
-        IHTMLEventObj_Release(event_obj);
-        doc->window->event = prev_event;
-    }
+    IHTMLEventObj_Release(event_obj);
+    doc->window->event = prev_event;
 }
 
 static HRESULT set_event_handler_disp(event_target_t **event_target, HTMLDocument *doc, eventid_t eid, IDispatch *disp)




More information about the wine-cvs mailing list