Sebastian Lackner : winebus.sys: Add a strdupAtoW implementation.

Alexandre Julliard julliard at winehq.org
Fri Oct 14 13:46:55 CDT 2016


Module: wine
Branch: master
Commit: 66d70e38f5508042a6acf80f216b76e3c6fd8d35
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=66d70e38f5508042a6acf80f216b76e3c6fd8d35

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Fri Oct 14 08:54:33 2016 +0200

winebus.sys: Add a strdupAtoW implementation.

Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winebus.sys/bus_udev.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
index 22ea07d..fd5de70 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -78,6 +78,17 @@ static inline struct platform_private *impl_from_DEVICE_OBJECT(DEVICE_OBJECT *de
     return (struct platform_private *)get_platform_private(device);
 }
 
+static inline WCHAR *strdupAtoW(const char *src)
+{
+    WCHAR *dst;
+    DWORD len;
+    if (!src) return NULL;
+    len = MultiByteToWideChar(CP_UNIXCP, 0, src, -1, NULL, 0);
+    if ((dst = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR))))
+        MultiByteToWideChar(CP_UNIXCP, 0, src, -1, dst, len);
+    return dst;
+}
+
 static DWORD get_sysattr_dword(struct udev_device *dev, const char *sysattr, int base)
 {
     const char *attr = udev_device_get_sysattr_value(dev, sysattr);
@@ -92,17 +103,12 @@ static DWORD get_sysattr_dword(struct udev_device *dev, const char *sysattr, int
 static WCHAR *get_sysattr_string(struct udev_device *dev, const char *sysattr)
 {
     const char *attr = udev_device_get_sysattr_value(dev, sysattr);
-    WCHAR *dst;
-    DWORD len;
     if (!attr)
     {
         WARN("Could not get %s from device\n", sysattr);
         return NULL;
     }
-    len = MultiByteToWideChar(CP_UNIXCP, 0, attr, -1, NULL, 0);
-    if ((dst = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR))))
-        MultiByteToWideChar(CP_UNIXCP, 0, attr, -1, dst, len);
-    return dst;
+    return strdupAtoW(attr);
 }
 
 static int compare_platform_device(DEVICE_OBJECT *device, void *platform_dev)




More information about the wine-cvs mailing list