Module: wine Branch: master Commit: 6919c866014d3023727d9b71e2cb6dd92e65ef9f URL: http://source.winehq.org/git/wine.git/?a=commit;h=6919c866014d3023727d9b71e2...
Author: Jacek Caban jacek@codeweavers.com Date: Thu May 14 13:26:02 2015 +0200
mshtml: Get rid of get_node_event_target.
---
dlls/mshtml/htmlevent.c | 37 +++++++++++++++---------------------- dlls/mshtml/htmlevent.h | 7 ------- 2 files changed, 15 insertions(+), 29 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 3713389..6468b38 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -883,6 +883,19 @@ HRESULT create_event_obj(IHTMLEventObj **ret) return S_OK; }
+static inline event_target_t *get_event_target_data(EventTarget *event_target, BOOL alloc) +{ + event_target_t **ptr; + + ptr = event_target->dispex.data->vtbl && event_target->dispex.data->vtbl->get_event_target_ptr + ? event_target->dispex.data->vtbl->get_event_target_ptr(&event_target->dispex) + : &event_target->ptr; + if(*ptr || !alloc) + return *ptr; + + return *ptr = heap_alloc_zero(sizeof(event_target_t)); +} + static HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp, VARIANT *retv) { IDispatchEx *dispex; @@ -1107,7 +1120,7 @@ static void fire_event_obj(HTMLDocumentNode *doc, eventid_t eid, HTMLEventObj *e do { hres = get_node(doc, nsnode, FALSE, &node); if(SUCCEEDED(hres) && node) { - call_event_handlers(doc, event_obj, *get_node_event_target(node), + call_event_handlers(doc, event_obj, get_event_target_data(&node->event_target, FALSE), node->cp_container, eid, script_this ? script_this : (IDispatch*)&node->IHTMLDOMNode_iface); node_release(node); } @@ -1136,7 +1149,7 @@ static void fire_event_obj(HTMLDocumentNode *doc, eventid_t eid, HTMLEventObj *e if(NS_SUCCEEDED(nsres) && nsbody) { hres = get_node(doc, (nsIDOMNode*)nsbody, FALSE, &node); if(SUCCEEDED(hres) && node) { - call_event_handlers(doc, event_obj, *get_node_event_target(node), + call_event_handlers(doc, event_obj, get_event_target_data(&node->event_target, FALSE), node->cp_container, eid, script_this ? script_this : (IDispatch*)&node->IHTMLDOMNode_iface); node_release(node); } @@ -1301,26 +1314,6 @@ HRESULT call_fire_event(HTMLDOMNode *node, eventid_t eid) return S_OK; }
-static inline event_target_t *get_event_target(event_target_t **event_target_ptr) -{ - if(!*event_target_ptr) - *event_target_ptr = heap_alloc_zero(sizeof(event_target_t)); - return *event_target_ptr; -} - -static inline event_target_t *get_event_target_data(EventTarget *event_target, BOOL alloc) -{ - event_target_t **ptr; - - ptr = event_target->dispex.data->vtbl && event_target->dispex.data->vtbl->get_event_target_ptr - ? event_target->dispex.data->vtbl->get_event_target_ptr(&event_target->dispex) - : &event_target->ptr; - if(*ptr || !alloc) - return *ptr; - - return *ptr = heap_alloc_zero(sizeof(event_target_t)); -} - static BOOL alloc_handler_vector(event_target_t *event_target, eventid_t eid, int cnt) { handler_vector_t *new_vector, *handler_vector = event_target->event_table[eid]; diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index 85f056c..6133737 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -71,13 +71,6 @@ void release_nsevents(HTMLDocumentNode*) DECLSPEC_HIDDEN; void add_nsevent_listener(HTMLDocumentNode*,nsIDOMNode*,LPCWSTR) DECLSPEC_HIDDEN; void detach_nsevent(HTMLDocumentNode*,const WCHAR*) DECLSPEC_HIDDEN;
-static inline event_target_t **get_node_event_target(HTMLDOMNode *node) -{ - return node->event_target.dispex.data->vtbl->get_event_target_ptr - ? node->event_target.dispex.data->vtbl->get_event_target_ptr(&node->event_target.dispex) - : &node->event_target.ptr; -} - static inline HRESULT set_node_event(HTMLDOMNode *node, eventid_t eid, VARIANT *var) { return set_event_handler(&node->event_target, node->doc, eid, var);