Andrew Talbot : setupapi: Assign to structs instead of using memcpy.

Alexandre Julliard julliard at winehq.org
Mon Mar 17 10:46:27 CDT 2008


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

Author: Andrew Talbot <andrew.talbot at talbotville.com>
Date:   Sat Mar 15 23:25:45 2008 +0000

setupapi: Assign to structs instead of using memcpy.

---

 dlls/setupapi/devinst.c     |   27 +++++++++++----------------
 dlls/setupapi/misc.c        |    2 +-
 dlls/setupapi/setupx_main.c |    2 +-
 dlls/setupapi/virtcopy.c    |    4 ++--
 4 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index c90170b..f7c3839 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -352,13 +352,11 @@ static BOOL SETUPDI_AddInterfaceInstance(PSP_DEVINFO_DATA DeviceInfoData,
                         iface->cInstances++;
                         instance->cbSize =
                             sizeof(SP_DEVICE_INTERFACE_DATA);
-                        memcpy(&instance->InterfaceClassGuid,
-                                InterfaceClassGuid, sizeof(GUID));
+                        instance->InterfaceClassGuid = *InterfaceClassGuid;
                         instance->Flags = SPINT_ACTIVE; /* FIXME */
                         instance->Reserved = (ULONG_PTR)ifaceInfo;
                         if (newInterface)
-                            memcpy(&iface->guid, InterfaceClassGuid,
-                                    sizeof(GUID));
+                            iface->guid = *InterfaceClassGuid;
                         key = SetupDiCreateDeviceInterfaceRegKeyW(devInfo->set,
                                 instance, 0, KEY_WRITE, NULL, NULL);
                         if (key != INVALID_HANDLE_VALUE)
@@ -555,7 +553,7 @@ static BOOL SETUPDI_AddDeviceToSet(struct DeviceInfoSet *set,
             SP_DEVINFO_DATA *DeviceInfoData = &set->devices[set->cDevices++];
 
             DeviceInfoData->cbSize = sizeof(SP_DEVINFO_DATA);
-            memcpy(&DeviceInfoData->ClassGuid, guid, sizeof(GUID));
+            DeviceInfoData->ClassGuid = *guid;
             DeviceInfoData->DevInst = devInfo->devId;
             DeviceInfoData->Reserved = (ULONG_PTR)devInfo;
             SETUPDI_GuidToString(guid, classGuidStr);
@@ -1498,7 +1496,7 @@ BOOL WINAPI SetupDiCreateDeviceInfoW(
                     ret = FALSE;
                 }
                 else
-                    memcpy(DeviceInfoData, dev, sizeof(SP_DEVINFO_DATA));
+                    *DeviceInfoData = *dev;
             }
         }
     }
@@ -2383,7 +2381,7 @@ BOOL WINAPI SetupDiGetDeviceInfoListDetailA(
         SetLastError(ERROR_INVALID_PARAMETER);
         return FALSE;
     }
-    memcpy(&DevInfoData->ClassGuid, &set->ClassGuid, sizeof(GUID));
+    DevInfoData->ClassGuid = set->ClassGuid;
     DevInfoData->RemoteMachineHandle = NULL;
     DevInfoData->RemoteMachineName[0] = '\0';
     return TRUE;
@@ -2416,7 +2414,7 @@ BOOL WINAPI SetupDiGetDeviceInfoListDetailW(
         SetLastError(ERROR_INVALID_PARAMETER);
         return FALSE;
     }
-    memcpy(&DevInfoData->ClassGuid, &set->ClassGuid, sizeof(GUID));
+    DevInfoData->ClassGuid = set->ClassGuid;
     DevInfoData->RemoteMachineHandle = NULL;
     DevInfoData->RemoteMachineName[0] = '\0';
     return TRUE;
@@ -2513,7 +2511,7 @@ BOOL WINAPI SetupDiCreateDeviceInterfaceW(
                 ret = FALSE;
             }
             else
-                memcpy(DeviceInterfaceData, iface, sizeof(*iface));
+                *DeviceInterfaceData = *iface;
         }
     }
     return ret;
@@ -2770,8 +2768,7 @@ BOOL WINAPI SetupDiEnumDeviceInterfaces(
         if ((ret = SETUPDI_FindInterface(devInfo, InterfaceClassGuid, &iface)))
         {
             if (MemberIndex < iface->cInstances)
-                memcpy(DeviceInterfaceData, &iface->instances[MemberIndex],
-                    sizeof(SP_DEVICE_INTERFACE_DATA));
+                *DeviceInterfaceData = iface->instances[MemberIndex];
             else
             {
                 SetLastError(ERROR_NO_MORE_ITEMS);
@@ -2801,9 +2798,7 @@ BOOL WINAPI SetupDiEnumDeviceInterfaces(
                 {
                     DWORD instanceIndex = MemberIndex - cEnumerated;
 
-                    memcpy(DeviceInterfaceData,
-                            &iface->instances[instanceIndex],
-                            sizeof(SP_DEVICE_INTERFACE_DATA));
+                    *DeviceInterfaceData = iface->instances[instanceIndex];
                     cEnumerated += instanceIndex + 1;
                     found = TRUE;
                     ret = TRUE;
@@ -2916,7 +2911,7 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(
         else
             DeviceInterfaceDetailData->DevicePath[0] = '\0';
         if (DeviceInfoData && DeviceInfoData->cbSize == sizeof(SP_DEVINFO_DATA))
-            memcpy(DeviceInfoData, info->device, sizeof(SP_DEVINFO_DATA));
+            *DeviceInfoData = *info->device;
         ret = TRUE;
     }
     else
@@ -2984,7 +2979,7 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(
         else
             DeviceInterfaceDetailData->DevicePath[0] = '\0';
         if (DeviceInfoData && DeviceInfoData->cbSize == sizeof(SP_DEVINFO_DATA))
-            memcpy(DeviceInfoData, info->device, sizeof(SP_DEVINFO_DATA));
+            *DeviceInfoData = *info->device;
         ret = TRUE;
     }
     else
diff --git a/dlls/setupapi/misc.c b/dlls/setupapi/misc.c
index a915875..62abc85 100644
--- a/dlls/setupapi/misc.c
+++ b/dlls/setupapi/misc.c
@@ -511,7 +511,7 @@ BOOL WINAPI FileExists(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFileFindData)
     FindClose(hFind);
 
     if (lpFileFindData)
-        memcpy(lpFileFindData, &FindData, sizeof(WIN32_FIND_DATAW));
+        *lpFileFindData = FindData;
 
     SetErrorMode(uErrorMode);
 
diff --git a/dlls/setupapi/setupx_main.c b/dlls/setupapi/setupx_main.c
index 197eac3..606ffb8 100644
--- a/dlls/setupapi/setupx_main.c
+++ b/dlls/setupapi/setupx_main.c
@@ -476,7 +476,7 @@ RETERR16 WINAPI CtlSetLdd16(LPLOGDISKDESC pldd)
         HeapFree(heap, 0, pCurrLDD->pszDiskName);
     }
 
-    memcpy(pCurrLDD, pldd, sizeof(LOGDISKDESC_S));
+    *pCurrLDD = *pldd;
 
     if (pldd->pszPath)
     {
diff --git a/dlls/setupapi/virtcopy.c b/dlls/setupapi/virtcopy.c
index 782bb97..b969d1d 100644
--- a/dlls/setupapi/virtcopy.c
+++ b/dlls/setupapi/virtcopy.c
@@ -250,10 +250,10 @@ static RETERR16 VCP_VirtnodeCreate(const VCPFILESPEC *vfsSrc, const VCPFILESPEC
     lpvn->cbSize = sizeof(VIRTNODE);
 
     if (vfsSrc)
-        memcpy(&lpvn->vfsSrc, vfsSrc, sizeof(VCPFILESPEC));
+        lpvn->vfsSrc = *vfsSrc;
 
     if (vfsDst)
-        memcpy(&lpvn->vfsDst, vfsDst, sizeof(VCPFILESPEC));
+        lpvn->vfsDst = *vfsDst;
 
     lpvn->fl = fl;
     lpvn->lParam = lParam;




More information about the wine-cvs mailing list