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

Alexandre Julliard julliard at winehq.org
Fri Mar 21 07:46:57 CDT 2008


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

Author: Andrew Talbot <andrew.talbot at talbotville.com>
Date:   Thu Mar 20 22:25:13 2008 +0000

wined3d: Assign to structs instead of using memcpy.

---

 dlls/wined3d/device.c       |   20 ++++++++++----------
 dlls/wined3d/stateblock.c   |   19 +++++++++----------
 dlls/wined3d/surface_base.c |    4 ++--
 3 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 158791f..7d208dc 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1709,7 +1709,7 @@ static unsigned int ConvertFvfToDeclaration(IWineD3DDeviceImpl *This, /* For the
     if (!elements)
         return 0;
 
-    memcpy(&elements[size-1], &end_element, sizeof(WINED3DVERTEXELEMENT));
+    elements[size-1] = end_element;
     idx = 0;
     if (has_pos) {
         if (!has_blend && (fvf & WINED3DFVF_XYZRHW)) {
@@ -2549,7 +2549,7 @@ static HRESULT  WINAPI  IWineD3DDeviceImpl_SetTransform(IWineD3DDevice *iface, W
     if (This->isRecordingState) {
         TRACE("Recording... not performing anything\n");
         This->updateStateBlock->changed.transform[d3dts] = TRUE;
-        memcpy(&This->updateStateBlock->transforms[d3dts], lpmatrix, sizeof(WINED3DMATRIX));
+        This->updateStateBlock->transforms[d3dts] = *lpmatrix;
         return WINED3D_OK;
     }
 
@@ -2589,7 +2589,7 @@ static HRESULT  WINAPI  IWineD3DDeviceImpl_SetTransform(IWineD3DDevice *iface, W
 static HRESULT WINAPI IWineD3DDeviceImpl_GetTransform(IWineD3DDevice *iface, WINED3DTRANSFORMSTATETYPE State, WINED3DMATRIX* pMatrix) {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
     TRACE("(%p) : for Transform State %s\n", This, debug_d3dtstype(State));
-    memcpy(pMatrix, &This->stateBlock->transforms[State], sizeof(WINED3DMATRIX));
+    *pMatrix = This->stateBlock->transforms[State];
     return WINED3D_OK;
 }
 
@@ -2696,7 +2696,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetLight(IWineD3DDevice *iface, DWORD I
     TRACE("... Range(%f), Falloff(%f), Theta(%f), Phi(%f)\n", pLight->Range, pLight->Falloff, pLight->Theta, pLight->Phi);
 
     /* Save away the information */
-    memcpy(&object->OriginalParms, pLight, sizeof(WINED3DLIGHT));
+    object->OriginalParms = *pLight;
 
     switch (pLight->Type) {
     case WINED3DLIGHT_POINT:
@@ -2788,7 +2788,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetLight(IWineD3DDevice *iface, DWORD I
         return WINED3DERR_INVALIDCALL;
     }
 
-    memcpy(pLight, &lightInfo->OriginalParms, sizeof(WINED3DLIGHT));
+    *pLight = lightInfo->OriginalParms;
     return WINED3D_OK;
 }
 
@@ -2993,7 +2993,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetMaterial(IWineD3DDevice *iface, CONS
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
 
     This->updateStateBlock->changed.material = TRUE;
-    memcpy(&This->updateStateBlock->material, pMaterial, sizeof(WINED3DMATERIAL));
+    This->updateStateBlock->material = *pMaterial;
 
     /* Handle recording of state blocks */
     if (This->isRecordingState) {
@@ -3007,7 +3007,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetMaterial(IWineD3DDevice *iface, CONS
 
 static HRESULT WINAPI IWineD3DDeviceImpl_GetMaterial(IWineD3DDevice *iface, WINED3DMATERIAL* pMaterial) {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-    memcpy(pMaterial, &This->updateStateBlock->material, sizeof (WINED3DMATERIAL));
+    *pMaterial = This->updateStateBlock->material;
     TRACE("(%p) : Diffuse (%f,%f,%f,%f)\n", This, pMaterial->Diffuse.r, pMaterial->Diffuse.g,
         pMaterial->Diffuse.b, pMaterial->Diffuse.a);
     TRACE("(%p) : Ambient (%f,%f,%f,%f)\n", This, pMaterial->Ambient.r, pMaterial->Ambient.g,
@@ -3107,7 +3107,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetViewport(IWineD3DDevice *iface, CONS
 
     TRACE("(%p)\n", This);
     This->updateStateBlock->changed.viewport = TRUE;
-    memcpy(&This->updateStateBlock->viewport, pViewport, sizeof(WINED3DVIEWPORT));
+    This->updateStateBlock->viewport = *pViewport;
 
     /* Handle recording of state blocks */
     if (This->isRecordingState) {
@@ -3126,7 +3126,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetViewport(IWineD3DDevice *iface, CONS
 static HRESULT WINAPI IWineD3DDeviceImpl_GetViewport(IWineD3DDevice *iface, WINED3DVIEWPORT* pViewport) {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
     TRACE("(%p)\n", This);
-    memcpy(pViewport, &This->stateBlock->viewport, sizeof(WINED3DVIEWPORT));
+    *pViewport = This->stateBlock->viewport;
     return WINED3D_OK;
 }
 
@@ -5806,7 +5806,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawRectPatch(IWineD3DDevice *iface, UI
         TRACE("Tesselation density or patch info changed, retesselating\n");
 
         if(pRectPatchInfo) {
-            memcpy(&patch->RectPatchInfo, pRectPatchInfo, sizeof(*pRectPatchInfo));
+            patch->RectPatchInfo = *pRectPatchInfo;
         }
         patch->numSegs[0] = pNumSegs[0];
         patch->numSegs[1] = pNumSegs[1];
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 0c7edad..e81a8ed 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -170,7 +170,7 @@ void stateblock_copy(
     Dest->material = This->material;
     Dest->pixelShader = This->pixelShader;
     Dest->glsl_program = This->glsl_program;
-    memcpy(&Dest->scissorRect, &This->scissorRect, sizeof(Dest->scissorRect));
+    Dest->scissorRect = This->scissorRect;
 
     /* Lights */
     memset(This->activeLights, 0, sizeof(This->activeLights));
@@ -185,7 +185,7 @@ void stateblock_copy(
         LIST_FOR_EACH(e1, &This->lightMap[l]) {
             PLIGHTINFOEL *light = LIST_ENTRY(e1, PLIGHTINFOEL, entry), *light2;
             light2 = HeapAlloc(GetProcessHeap(), 0, sizeof(*light));
-            memcpy(light2, light, sizeof(*light));
+            *light2 = *light;
             list_add_tail(&Dest->lightMap[l], &light2->entry);
             if(light2->glIndex != -1) Dest->activeLights[light2->glIndex] = light2;
         }
@@ -342,7 +342,7 @@ static inline void record_lights(IWineD3DStateBlockImpl *This, IWineD3DStateBloc
                 realLight = LIST_ENTRY(f, PLIGHTINFOEL, entry);
                 if(realLight->OriginalIndex == src->OriginalIndex) {
                     if(src->changed) {
-                        memcpy(&src->OriginalParms, &realLight->OriginalParms, sizeof(src->OriginalParms));
+                        src->OriginalParms = realLight->OriginalParms;
                     }
                     if(src->enabledChanged) {
                             /* Need to double check because enabledChanged does not catch enabled -> disabled -> enabled
@@ -367,7 +367,7 @@ static inline void record_lights(IWineD3DStateBlockImpl *This, IWineD3DStateBloc
                 continue;
             } else if(src->changed) {
                 /* Otherwise assign defaul params */
-                memcpy(&src->OriginalParms, &WINED3D_default_light, sizeof(src->OriginalParms));
+                src->OriginalParms = WINED3D_default_light;
             } else {
                 /* Not enabled by default */
                 src->glIndex = -1;
@@ -477,9 +477,8 @@ static HRESULT  WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface)
         /* Others + Render & Texture */
         for (i = 0; i < This->num_contained_transform_states; i++) {
             TRACE("Updating transform %d\n", i);
-            memcpy(&This->transforms[This->contained_transform_states[i]],
-                   &targetStateBlock->transforms[This->contained_transform_states[i]],
-                   sizeof(WINED3DMATRIX));
+            This->transforms[This->contained_transform_states[i]] =
+                targetStateBlock->transforms[This->contained_transform_states[i]];
         }
 
         if (This->changed.indices && ((This->pIndexData != targetStateBlock->pIndexData)
@@ -506,14 +505,14 @@ static HRESULT  WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface)
                                                     &This->material,
                                                     sizeof(WINED3DMATERIAL)) != 0) {
             TRACE("Updating material\n");
-            memcpy(&This->material, &targetStateBlock->material, sizeof(WINED3DMATERIAL));
+            This->material = targetStateBlock->material;
         }
 
         if (This->changed.viewport && memcmp(&targetStateBlock->viewport,
                                                     &This->viewport,
                                                     sizeof(WINED3DVIEWPORT)) != 0) {
             TRACE("Updating viewport\n");
-            memcpy(&This->viewport, &targetStateBlock->viewport, sizeof(WINED3DVIEWPORT));
+            This->viewport = targetStateBlock->viewport;
         }
 
         if(This->changed.scissorRect && memcmp(&targetStateBlock->scissorRect,
@@ -521,7 +520,7 @@ static HRESULT  WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface)
                                            sizeof(targetStateBlock->scissorRect)))
         {
             TRACE("Updating scissor rect\n");
-            memcpy(&targetStateBlock->scissorRect, &This->scissorRect, sizeof(targetStateBlock->scissorRect));
+            targetStateBlock->scissorRect = This->scissorRect;
         }
 
         for (i = 0; i < MAX_STREAMS; i++) {
diff --git a/dlls/wined3d/surface_base.c b/dlls/wined3d/surface_base.c
index 14de5a5..00efa6c 100644
--- a/dlls/wined3d/surface_base.c
+++ b/dlls/wined3d/surface_base.c
@@ -849,7 +849,7 @@ IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface,
 
     if (DestRect)
     {
-        memcpy(&xdst,DestRect,sizeof(xdst));
+        xdst = *DestRect;
     }
     else
     {
@@ -861,7 +861,7 @@ IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface,
 
     if (SrcRect)
     {
-        memcpy(&xsrc,SrcRect,sizeof(xsrc));
+        xsrc = *SrcRect;
     }
     else
     {




More information about the wine-cvs mailing list