Nikolay Sivov : msxml3/domimpl: Cleanup object creation helper.
Alexandre Julliard
julliard at winehq.org
Thu Aug 19 16:00:06 CDT 2021
Module: wine
Branch: master
Commit: 24d81667dcd832dea5874680273d2caf0d45f67d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=24d81667dcd832dea5874680273d2caf0d45f67d
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu Aug 19 17:29:02 2021 +0300
msxml3/domimpl: Cleanup object creation helper.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msxml3/domdoc.c | 4 +---
dlls/msxml3/domimpl.c | 19 ++++++++++---------
dlls/msxml3/msxml_private.h | 2 +-
3 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 10892d40757..e8b5445df19 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -1642,9 +1642,7 @@ static HRESULT WINAPI domdoc_get_implementation(
if(!impl)
return E_INVALIDARG;
- *impl = (IXMLDOMImplementation*)create_doc_Implementation();
-
- return S_OK;
+ return create_dom_implementation(impl);
}
static HRESULT WINAPI domdoc_get_documentElement(
diff --git a/dlls/msxml3/domimpl.c b/dlls/msxml3/domimpl.c
index 52f2e40dc9e..b7db00f4667 100644
--- a/dlls/msxml3/domimpl.c
+++ b/dlls/msxml3/domimpl.c
@@ -189,17 +189,18 @@ static dispex_static_data_t dimimpl_dispex = {
dimimpl_iface_tids
};
-IUnknown* create_doc_Implementation(void)
+HRESULT create_dom_implementation(IXMLDOMImplementation **ret)
{
- domimpl *This;
+ domimpl *object;
- This = heap_alloc( sizeof *This );
- if ( !This )
- return NULL;
+ if (!(object = heap_alloc(sizeof(*object))))
+ return E_OUTOFMEMORY;
- This->IXMLDOMImplementation_iface.lpVtbl = &dimimpl_vtbl;
- This->ref = 1;
- init_dispex(&This->dispex, (IUnknown*)&This->IXMLDOMImplementation_iface, &dimimpl_dispex);
+ object->IXMLDOMImplementation_iface.lpVtbl = &dimimpl_vtbl;
+ object->ref = 1;
+ init_dispex(&object->dispex, (IUnknown *)&object->IXMLDOMImplementation_iface, &dimimpl_dispex);
- return (IUnknown*)&This->IXMLDOMImplementation_iface;
+ *ret = &object->IXMLDOMImplementation_iface;
+
+ return S_OK;
}
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index d578d5de560..29b1156775c 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -180,12 +180,12 @@ extern IUnknown *create_comment( xmlNodePtr ) DECLSPEC_HIDDEN;
extern IUnknown *create_cdata( xmlNodePtr ) DECLSPEC_HIDDEN;
extern IXMLDOMNodeList *create_children_nodelist( xmlNodePtr ) DECLSPEC_HIDDEN;
extern IXMLDOMNamedNodeMap *create_nodemap( xmlNodePtr, const struct nodemap_funcs* ) DECLSPEC_HIDDEN;
-extern IUnknown *create_doc_Implementation(void) DECLSPEC_HIDDEN;
extern IUnknown *create_doc_fragment( xmlNodePtr ) DECLSPEC_HIDDEN;
extern IUnknown *create_doc_entity_ref( xmlNodePtr ) DECLSPEC_HIDDEN;
extern IUnknown *create_doc_type( xmlNodePtr ) DECLSPEC_HIDDEN;
extern HRESULT create_selection( xmlNodePtr, xmlChar*, IXMLDOMNodeList** ) DECLSPEC_HIDDEN;
extern HRESULT create_enumvariant( IUnknown*, BOOL, const struct enumvariant_funcs*, IEnumVARIANT**) DECLSPEC_HIDDEN;
+extern HRESULT create_dom_implementation(IXMLDOMImplementation **obj) DECLSPEC_HIDDEN;
/* data accessors */
xmlNodePtr xmlNodePtr_from_domnode( IXMLDOMNode *iface, xmlElementType type ) DECLSPEC_HIDDEN;
More information about the wine-cvs
mailing list