Jacek Caban : mshtml: Get rid of get_node_event_target.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri May 15 08:38:42 CDT 2015
Module: wine
Branch: master
Commit: 6919c866014d3023727d9b71e2cb6dd92e65ef9f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6919c866014d3023727d9b71e2cb6dd92e65ef9f
Author: Jacek Caban <jacek at 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);
More information about the wine-cvs
mailing list