Alexandre Julliard : libport: Get rid of memcpy_unaligned().

Alexandre Julliard julliard at winehq.org
Tue Mar 12 16:56:15 CDT 2019


Module: wine
Branch: master
Commit: 25e4cfbdb37d58743ece53e120cf258f1cd0ae46
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=25e4cfbdb37d58743ece53e120cf258f1cd0ae46

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Mar 12 19:30:33 2019 +0100

libport: Get rid of memcpy_unaligned().

The code that uses it is no longer built on non-i386.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/krnl386.exe16/ne_module.c |  2 +-
 dlls/krnl386.exe16/resource.c  |  7 +++----
 include/wine/port.h            | 10 ----------
 libs/port/Makefile.in          |  1 -
 libs/port/memcpy_unaligned.c   | 29 -----------------------------
 5 files changed, 4 insertions(+), 45 deletions(-)

diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
index 14f8075..d494585 100644
--- a/dlls/krnl386.exe16/ne_module.c
+++ b/dlls/krnl386.exe16/ne_module.c
@@ -333,7 +333,7 @@ static void NE_InitResourceHandler( HMODULE16 hModule )
     pTypeInfo = (NE_TYPEINFO *)((char *)pModule + pModule->ne_rsrctab + 2);
     while(pTypeInfo->type_id)
     {
-        memcpy_unaligned( &pTypeInfo->resloader, &proc, sizeof(FARPROC16) );
+        pTypeInfo->resloader = proc;
         pTypeInfo = (NE_TYPEINFO *)((char*)(pTypeInfo + 1) + pTypeInfo->count * sizeof(NE_NAMEINFO));
     }
 }
diff --git a/dlls/krnl386.exe16/resource.c b/dlls/krnl386.exe16/resource.c
index da54f6d..2f606fa 100644
--- a/dlls/krnl386.exe16/resource.c
+++ b/dlls/krnl386.exe16/resource.c
@@ -380,8 +380,8 @@ FARPROC16 WINAPI SetResourceHandler16( HMODULE16 hModule, LPCSTR typeId, FARPROC
     {
         if (!(pTypeInfo = NE_FindTypeSection( pResTab, pTypeInfo, typeId )))
             break;
-        memcpy_unaligned( &prevHandler, &pTypeInfo->resloader, sizeof(FARPROC16) );
-        memcpy_unaligned( &pTypeInfo->resloader, &resourceHandler, sizeof(FARPROC16) );
+        prevHandler = pTypeInfo->resloader;
+        pTypeInfo->resloader = resourceHandler;
         pTypeInfo = next_typeinfo(pTypeInfo);
     }
     if (!prevHandler) prevHandler = get_default_res_handler();
@@ -1031,8 +1031,7 @@ HGLOBAL16 WINAPI LoadResource16( HMODULE16 hModule, HRSRC16 hRsrc )
         }
         else
         {
-            FARPROC16 resloader;
-            memcpy_unaligned( &resloader, &pTypeInfo->resloader, sizeof(FARPROC16) );
+            FARPROC16 resloader = pTypeInfo->resloader;
             if (resloader && resloader != get_default_res_handler())
             {
                 WORD args[3];
diff --git a/include/wine/port.h b/include/wine/port.h
index fb7251e..600d78d 100644
--- a/include/wine/port.h
+++ b/include/wine/port.h
@@ -368,15 +368,6 @@ int symlink(const char *from, const char *to);
 int usleep (unsigned int useconds);
 #endif /* !defined(HAVE_USLEEP) */
 
-#ifdef __i386__
-static inline void *memcpy_unaligned( void *dst, const void *src, size_t size )
-{
-    return memcpy( dst, src, size );
-}
-#else
-extern void *memcpy_unaligned( void *dst, const void *src, size_t size );
-#endif /* __i386__ */
-
 extern int mkstemps(char *template, int suffix_len);
 
 /* Process creation flags */
@@ -532,7 +523,6 @@ extern __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compa
 #define interlocked_xchg_ptr    __WINE_NOT_PORTABLE(interlocked_xchg_ptr)
 #define interlocked_xchg_add    __WINE_NOT_PORTABLE(interlocked_xchg_add)
 #define lstat                   __WINE_NOT_PORTABLE(lstat)
-#define memcpy_unaligned        __WINE_NOT_PORTABLE(memcpy_unaligned)
 #undef memmove
 #define memmove                 __WINE_NOT_PORTABLE(memmove)
 #define pread                   __WINE_NOT_PORTABLE(pread)
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
index 8d16741..239f20f 100644
--- a/libs/port/Makefile.in
+++ b/libs/port/Makefile.in
@@ -90,7 +90,6 @@ C_SRCS = \
 	isnan.c \
 	lstat.c \
 	mbtowc.c \
-	memcpy_unaligned.c \
 	memmove.c \
 	mkstemps.c \
 	normalize.c \
diff --git a/libs/port/memcpy_unaligned.c b/libs/port/memcpy_unaligned.c
deleted file mode 100644
index 35fbacb..0000000
--- a/libs/port/memcpy_unaligned.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Unaligned memcpy wrapper to defeat gcc optimizations.
- *
- * Copyright 1996 Alexandre Julliard
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#include "config.h"
-#include "wine/port.h"
-
-#ifndef __i386__
-void *memcpy_unaligned( void *dst, const void *src, size_t size )
-{
-    return memcpy( dst, src, size );
-}
-#endif




More information about the wine-cvs mailing list