wuapi: Remove unused IUnknown *outer parameter from object constructors.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Dec 30 03:21:15 CST 2013
The patch also fixes a memory leak in the object creation failure case.
Class factory explicitly checks for it:
if (outer) return CLASS_E_NOAGGREGATION;
obj_constructor(outer, &obj);
i.e. outer is always NULL in the object constructor.
---
dlls/wuapi/main.c | 7 ++-----
dlls/wuapi/session.c | 10 +++++-----
dlls/wuapi/wuapi_private.h | 12 ++++++------
3 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/dlls/wuapi/main.c b/dlls/wuapi/main.c
index b6490eb..0527ee5 100644
--- a/dlls/wuapi/main.c
+++ b/dlls/wuapi/main.c
@@ -35,7 +35,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(wuapi);
-typedef HRESULT (*fnCreateInstance)( IUnknown *pUnkOuter, LPVOID *ppObj );
+typedef HRESULT (*fnCreateInstance)( LPVOID *ppObj );
typedef struct _wucf
{
@@ -85,14 +85,11 @@ static HRESULT WINAPI wucf_CreateInstance( IClassFactory *iface, LPUNKNOWN pOute
if (pOuter)
return CLASS_E_NOAGGREGATION;
- r = This->pfnCreateInstance( pOuter, (LPVOID *)&punk );
+ r = This->pfnCreateInstance( (LPVOID *)&punk );
if (FAILED(r))
return r;
r = IUnknown_QueryInterface( punk, riid, ppobj );
- if (FAILED(r))
- return r;
-
IUnknown_Release( punk );
return r;
}
diff --git a/dlls/wuapi/session.c b/dlls/wuapi/session.c
index a6abbc6..acc7cb0 100644
--- a/dlls/wuapi/session.c
+++ b/dlls/wuapi/session.c
@@ -179,7 +179,7 @@ static HRESULT WINAPI update_session_CreateUpdateSearcher(
IUpdateSearcher **retval )
{
TRACE("%p\n", This);
- return UpdateSearcher_create( NULL, (LPVOID *)retval );
+ return UpdateSearcher_create( (LPVOID *)retval );
}
static HRESULT WINAPI update_session_CreateUpdateDownloader(
@@ -187,7 +187,7 @@ static HRESULT WINAPI update_session_CreateUpdateDownloader(
IUpdateDownloader **retval )
{
TRACE("%p\n", This);
- return UpdateDownloader_create( NULL, (LPVOID *)retval );
+ return UpdateDownloader_create( (LPVOID *)retval );
}
static HRESULT WINAPI update_session_CreateUpdateInstaller(
@@ -195,7 +195,7 @@ static HRESULT WINAPI update_session_CreateUpdateInstaller(
IUpdateInstaller **retval )
{
TRACE("%p\n", This);
- return UpdateInstaller_create( NULL, (LPVOID *)retval );
+ return UpdateInstaller_create( (LPVOID *)retval );
}
static const struct IUpdateSessionVtbl update_session_vtbl =
@@ -217,11 +217,11 @@ static const struct IUpdateSessionVtbl update_session_vtbl =
update_session_CreateUpdateInstaller
};
-HRESULT UpdateSession_create( IUnknown *pUnkOuter, LPVOID *ppObj )
+HRESULT UpdateSession_create( LPVOID *ppObj )
{
update_session *session;
- TRACE("(%p,%p)\n", pUnkOuter, ppObj);
+ TRACE("(%p)\n", ppObj);
session = HeapAlloc( GetProcessHeap(), 0, sizeof(*session) );
if (!session) return E_OUTOFMEMORY;
diff --git a/dlls/wuapi/wuapi_private.h b/dlls/wuapi/wuapi_private.h
index 444722b..62b6dec 100644
--- a/dlls/wuapi/wuapi_private.h
+++ b/dlls/wuapi/wuapi_private.h
@@ -16,9 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-extern HRESULT AutomaticUpdates_create( IUnknown *pUnkOuter, LPVOID *ppObj ) DECLSPEC_HIDDEN;
-extern HRESULT UpdateSession_create( IUnknown *pUnkOuter, LPVOID *ppObj ) DECLSPEC_HIDDEN;
-extern HRESULT UpdateSearcher_create( IUnknown *pUnkOuter, LPVOID *ppObj ) DECLSPEC_HIDDEN;
-extern HRESULT UpdateDownloader_create( IUnknown *pUnkOuter, LPVOID *ppObj ) DECLSPEC_HIDDEN;
-extern HRESULT UpdateInstaller_create( IUnknown *pUnkOuter, LPVOID *ppObj ) DECLSPEC_HIDDEN;
-extern HRESULT SystemInformation_create(IUnknown *pUnkOuter, LPVOID *ppObj) DECLSPEC_HIDDEN;
+extern HRESULT AutomaticUpdates_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
+extern HRESULT UpdateSession_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
+extern HRESULT UpdateSearcher_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
+extern HRESULT UpdateDownloader_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
+extern HRESULT UpdateInstaller_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
+extern HRESULT SystemInformation_create( LPVOID *ppObj ) DECLSPEC_HIDDEN;
--
1.8.5.2
More information about the wine-patches
mailing list