From a1e81475d45fde5358b353995f62026c113f6bbe Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 15 Mar 2013 11:56:28 -0700 Subject: [PATCH] Fixed const correctness issue with C++, and fixed building SDL_memcpy4 with 32-bit gcc. --- include/SDL_stdinc.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h index e1a8adb91..14e339e96 100644 --- a/include/SDL_stdinc.h +++ b/include/SDL_stdinc.h @@ -414,19 +414,15 @@ SDL_FORCE_INLINE void *SDL_memcpy_inline(void *dst, const void *src, size_t len) SDL_FORCE_INLINE void *SDL_memcpy4(void *dst, const void *src, size_t dwords) { -#if defined(__MACOSX__) - /* We can count on memcpy existing on Mac OS X and being well-tuned. */ - return memcpy(dst, src, dwords * 4); -#elif defined(__GNUC__) && defined(i386) +#if defined(__GNUC__) && defined(i386) /* !!! FIXME: does this _really_ beat memcpy() on any modern platform? */ /* !!! FIXME: shouldn't we just force the inputs to ecx/edi/esi instead of this tapdance with outputs? */ - /* !!! FIXME: amd64? */ int ecx, edi, esi; __asm__ __volatile__ ( "cld \n\t" "rep ; movsl \n\t" : "=&c" (ecx), "=&D" (edi), "=&S" (esi) - : "0" (SDL_static_cast(unsigned, len)), "1" (dst), "2" (src) + : "0" (SDL_static_cast(unsigned, dwords)), "1" (dst), "2" (src) : "memory" ); return dst; @@ -512,7 +508,7 @@ SDL_FORCE_INLINE char *SDL_strlwr_inline(char *str) { return _strlwr(str); } extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); #ifdef HAVE_STRCHR -SDL_FORCE_INLINE char *SDL_strchr_inline(const char *str, int c) { return strchr(str, c); } +SDL_FORCE_INLINE char *SDL_strchr_inline(const char *str, int c) { return (char*)strchr(str, c); } #define SDL_strchr SDL_strchr_inline #elif defined(HAVE_INDEX) /* !!! FIXME: is there anywhere that has this but not strchr? */ SDL_FORCE_INLINE char *SDL_strchr_inline(const char *str, int c) { return index(str, c); }