Signed-off-by: Michael Stefaniuc mstefani@winehq.org --- There are about 40+ more strdupW() functions around. Most using that name, some prefixed with something else. Of course that is fodder for more patches.
dlls/appwiz.cpl/appwiz.h | 16 ---------------- dlls/dpnet/dpnet_private.h | 8 -------- dlls/dwrite/dwrite_private.h | 16 ---------------- dlls/ieframe/ieframe.h | 16 ---------------- dlls/inetcomm/protocol.c | 16 ---------------- dlls/jscript/jscript.h | 16 ---------------- dlls/mshtml/mshtml_private.h | 16 ---------------- dlls/msxml3/msxml_private.h | 16 ---------------- dlls/ole32/errorinfo.c | 16 ---------------- dlls/sapi/sapi_private.h | 15 --------------- dlls/schedsvc/schedsvc_private.h | 10 ---------- dlls/taskschd/taskschd_private.h | 10 ---------- dlls/urlmon/urlmon_main.h | 16 ---------------- dlls/vbscript/vbscript.h | 16 ---------------- dlls/wbemprox/wbemprox_private.h | 8 -------- dlls/wininet/internet.h | 16 ---------------- include/wine/heap.h | 16 ++++++++++++++++ 17 files changed, 16 insertions(+), 227 deletions(-)
diff --git a/dlls/appwiz.cpl/appwiz.h b/dlls/appwiz.cpl/appwiz.h index 2165ce11b1..5571ac158a 100644 --- a/dlls/appwiz.cpl/appwiz.h +++ b/dlls/appwiz.cpl/appwiz.h @@ -28,22 +28,6 @@ BOOL install_addon(addon_t) DECLSPEC_HIDDEN;
extern HINSTANCE hInst DECLSPEC_HIDDEN;
-static inline WCHAR *heap_strdupW(const WCHAR *str) -{ - WCHAR *ret; - - if(str) { - size_t size = strlenW(str)+1; - ret = heap_alloc(size*sizeof(WCHAR)); - if(ret) - memcpy(ret, str, size*sizeof(WCHAR)); - }else { - ret = NULL; - } - - return ret; -} - static inline WCHAR *heap_strdupAtoW(const char *str) { WCHAR *ret = NULL; diff --git a/dlls/dpnet/dpnet_private.h b/dlls/dpnet/dpnet_private.h index 2e72360c89..467ee87f6f 100644 --- a/dlls/dpnet/dpnet_private.h +++ b/dlls/dpnet/dpnet_private.h @@ -155,12 +155,4 @@ typedef struct { #define FE(x) { x, #x } #define GE(x) { &x, #x }
-static inline WCHAR *heap_strdupW( const WCHAR *src ) -{ - WCHAR *dst; - if (!src) return NULL; - if ((dst = heap_alloc( (strlenW( src ) + 1) * sizeof(WCHAR) ))) strcpyW( dst, src ); - return dst; -} - #endif diff --git a/dlls/dwrite/dwrite_private.h b/dlls/dwrite/dwrite_private.h index 31b977a159..867356fd73 100644 --- a/dlls/dwrite/dwrite_private.h +++ b/dlls/dwrite/dwrite_private.h @@ -31,22 +31,6 @@ static const DWRITE_MATRIX identity = 0.0f, 0.0f };
-static inline LPWSTR heap_strdupW(const WCHAR *str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static inline LPWSTR heap_strdupnW(const WCHAR *str, UINT32 len) { WCHAR *ret = NULL; diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index 8adf47e053..d2ba262a34 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -335,22 +335,6 @@ static inline void unlock_module(void) { InterlockedDecrement(&module_ref); }
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static inline LPWSTR co_strdupW(LPCWSTR str) { WCHAR *ret = CoTaskMemAlloc((strlenW(str) + 1)*sizeof(WCHAR)); diff --git a/dlls/inetcomm/protocol.c b/dlls/inetcomm/protocol.c index 028463a269..7741dc8fb5 100644 --- a/dlls/inetcomm/protocol.c +++ b/dlls/inetcomm/protocol.c @@ -63,22 +63,6 @@ typedef struct { static const WCHAR mhtml_prefixW[] = {'m','h','t','m','l',':'}; static const WCHAR mhtml_separatorW[] = {'!','x','-','u','s','c',':'};
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static HRESULT parse_mhtml_url(const WCHAR *url, mhtml_url_t *r) { const WCHAR *p; diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h index 1a247511ac..f3ed3d3523 100644 --- a/dlls/jscript/jscript.h +++ b/dlls/jscript/jscript.h @@ -55,22 +55,6 @@ void heap_pool_clear(heap_pool_t*) DECLSPEC_HIDDEN; void heap_pool_free(heap_pool_t*) DECLSPEC_HIDDEN; heap_pool_t *heap_pool_mark(heap_pool_t*) DECLSPEC_HIDDEN;
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - typedef struct jsdisp_t jsdisp_t;
extern HINSTANCE jscript_hinstance DECLSPEC_HIDDEN; diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 5ed626477f..2b7018f38a 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -1189,22 +1189,6 @@ static inline void * __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t le return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, len); }
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static inline LPWSTR heap_strndupW(LPCWSTR str, unsigned len) { LPWSTR ret = NULL; diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h index 94ef66b23d..6880294160 100644 --- a/dlls/msxml3/msxml_private.h +++ b/dlls/msxml3/msxml_private.h @@ -170,22 +170,6 @@ static inline void* __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t siz return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, size); }
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - /* XSLProcessor parameter list */ struct xslprocessor_par { diff --git a/dlls/ole32/errorinfo.c b/dlls/ole32/errorinfo.c index d5ec17207a..19f1b04b21 100644 --- a/dlls/ole32/errorinfo.c +++ b/dlls/ole32/errorinfo.c @@ -41,22 +41,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(ole);
-static inline WCHAR *heap_strdupW(const WCHAR *str) -{ - WCHAR *ret = NULL; - - if(str) { - size_t size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - typedef struct ErrorInfoImpl { IErrorInfo IErrorInfo_iface; diff --git a/dlls/sapi/sapi_private.h b/dlls/sapi/sapi_private.h index b069222c7d..cfc5f3e1ad 100644 --- a/dlls/sapi/sapi_private.h +++ b/dlls/sapi/sapi_private.h @@ -24,18 +24,3 @@ HRESULT data_key_create( IUnknown *outer, REFIID iid, void **obj ) DECLSPEC_HIDDEN; HRESULT token_category_create( IUnknown *outer, REFIID iid, void **obj ) DECLSPEC_HIDDEN; HRESULT token_enum_create( IUnknown *outer, REFIID iid, void **obj ) DECLSPEC_HIDDEN; - -static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - DWORD size; - - if (str) - { - size = (strlenW( str ) + 1) * sizeof(WCHAR); - ret = heap_alloc( size ); - if (ret) memcpy( ret, str, size ); - } - - return ret; -} diff --git a/dlls/schedsvc/schedsvc_private.h b/dlls/schedsvc/schedsvc_private.h index 4404486998..60901d8ad8 100644 --- a/dlls/schedsvc/schedsvc_private.h +++ b/dlls/schedsvc/schedsvc_private.h @@ -24,14 +24,4 @@
void schedsvc_auto_start(void) DECLSPEC_HIDDEN;
-static inline WCHAR *heap_strdupW(const WCHAR *src) -{ - WCHAR *dst; - unsigned len; - if (!src) return NULL; - len = (strlenW(src) + 1) * sizeof(WCHAR); - if ((dst = heap_alloc(len))) memcpy(dst, src, len); - return dst; -} - #endif /* __WINE_SCHEDSVC_PRIVATE_H__ */ diff --git a/dlls/taskschd/taskschd_private.h b/dlls/taskschd/taskschd_private.h index 6c7f916a0f..67383cbf59 100644 --- a/dlls/taskschd/taskschd_private.h +++ b/dlls/taskschd/taskschd_private.h @@ -32,14 +32,4 @@ HRESULT RegisteredTaskCollection_create(const WCHAR *path, IRegisteredTaskCollec
WCHAR *get_full_path(const WCHAR *parent, const WCHAR *path) DECLSPEC_HIDDEN;
-static inline WCHAR *heap_strdupW(const WCHAR *src) -{ - WCHAR *dst; - unsigned len; - if (!src) return NULL; - len = (strlenW(src) + 1) * sizeof(WCHAR); - if ((dst = heap_alloc(len))) memcpy(dst, src, len); - return dst; -} - #endif /* __WINE_TASKSCHD_PRIVATE_H__ */ diff --git a/dlls/urlmon/urlmon_main.h b/dlls/urlmon/urlmon_main.h index a4a1c78d52..89cdd389a6 100644 --- a/dlls/urlmon/urlmon_main.h +++ b/dlls/urlmon/urlmon_main.h @@ -240,22 +240,6 @@ static inline void* __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t siz return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, size); }
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static inline LPWSTR heap_strndupW(LPCWSTR str, int len) { LPWSTR ret = NULL; diff --git a/dlls/vbscript/vbscript.h b/dlls/vbscript/vbscript.h index 5e935ff76a..d8af4d6855 100644 --- a/dlls/vbscript/vbscript.h +++ b/dlls/vbscript/vbscript.h @@ -431,22 +431,6 @@ HRESULT create_safearray_iter(SAFEARRAY *sa, IEnumVARIANT **ev) DECLSPEC_HIDDEN; HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN; HRESULT WINAPI VBScriptRegExpFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN;
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - #define VBSCRIPT_BUILD_VERSION 16978 #define VBSCRIPT_MAJOR_VERSION 5 #define VBSCRIPT_MINOR_VERSION 8 diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h index 54b1ba3d8e..47dca73a26 100644 --- a/dlls/wbemprox/wbemprox_private.h +++ b/dlls/wbemprox/wbemprox_private.h @@ -228,14 +228,6 @@ HRESULT service_stop_service(IWbemClassObject *, IWbemClassObject *, IWbemClassO HRESULT security_get_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN; HRESULT security_set_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
-static inline WCHAR *heap_strdupW( const WCHAR *src ) -{ - WCHAR *dst; - if (!src) return NULL; - if ((dst = heap_alloc( (strlenW( src ) + 1) * sizeof(WCHAR) ))) strcpyW( dst, src ); - return dst; -} - static const WCHAR class_processW[] = {'W','i','n','3','2','_','P','r','o','c','e','s','s',0}; static const WCHAR class_serviceW[] = {'W','i','n','3','2','_','S','e','r','v','i','c','e',0}; static const WCHAR class_stdregprovW[] = {'S','t','d','R','e','g','P','r','o','v',0}; diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index 498a79b080..736506a9ce 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -95,22 +95,6 @@ static inline void * __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t le return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, len); }
-static inline LPWSTR heap_strdupW(LPCWSTR str) -{ - LPWSTR ret = NULL; - - if(str) { - DWORD size; - - size = (strlenW(str)+1)*sizeof(WCHAR); - ret = heap_alloc(size); - if(ret) - memcpy(ret, str, size); - } - - return ret; -} - static inline char *heap_strdupA(const char *str) { char *ret = NULL; diff --git a/include/wine/heap.h b/include/wine/heap.h index 97d3a5662b..d970e03731 100644 --- a/include/wine/heap.h +++ b/include/wine/heap.h @@ -55,4 +55,20 @@ static inline void *heap_calloc(SIZE_T count, SIZE_T size) return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); }
+static inline WCHAR *heap_strdupW(const WCHAR *str) +{ + WCHAR *dst; + SIZE_T len; + + if(!str) + return NULL; + + len = (lstrlenW(str) + 1) * sizeof(*str); + dst = heap_alloc(len); + if (dst) + memcpy(dst, str, len); + + return dst; +} + #endif /* __WINE_WINE_HEAP_H */