setupapi: Assign to structs instead of using memcpy

Andrew Talbot andrew.talbot at talbotville.com
Sat Mar 15 18:25:45 CDT 2008


Changelog:
    setupapi: Assign to structs instead of using memcpy.

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-patches mailing list