widl: Fix for typelib generation when unaligned access to memory is not allowed (alternatively)

André Hentschel nerv at dawncrow.de
Sat Nov 13 14:42:34 CST 2010


without condition,
Marcus thinks that's better
---
 tools/widl/write_msft.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
index da4eb25..874d3ad 100644
--- a/tools/widl/write_msft.c
+++ b/tools/widl/write_msft.c
@@ -1208,7 +1208,7 @@ static void write_value(msft_typelib_t* typelib, int *out, int vt, const void *v
         int len = strlen(s), seg_len = (len + 6 + 3) & ~0x3;
         int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, seg_len, 0);
         *((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = vt;
-        *((unsigned int *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2]) = len;        
+        memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], &len, sizeof(len));
         memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6], value, len);
         len += 6;
         while(len < seg_len) {
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list