ddraw: Partially revert a struct copy change to fix a regression. (Bug 27634)

Dylan Smith dylan.ah.smith at gmail.com
Tue Jun 28 11:41:21 CDT 2011


Commit 3871329872afe3976e0b2b85330e3a7c47301658 caused the regression.
---
 dlls/ddraw/ddraw_private.h |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index e15219d..5e20b8e 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -584,10 +584,11 @@ typedef struct
 #define DD_STRUCT_COPY_BYSIZE_(to,from,from_size)                 \
     do {                                                          \
         DWORD __size = (to)->dwSize;                              \
-        DWORD __copysize = min(__size, from_size);                \
+        DWORD __resetsize = min(__size, sizeof(*to));             \
+        DWORD __copysize = min(__resetsize, from_size);           \
         assert(to != from);                                       \
         memcpy(to, from, __copysize);                             \
-        memset((char*)(to) + __copysize, 0, __size - __copysize); \
+        memset((char*)(to) + __copysize, 0, __resetsize - __copysize); \
         (to)->dwSize = __size; /* restore size */                 \
     } while (0)
 
-- 
1.7.4.1



More information about the wine-patches mailing list