diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2005-06-03 18:57:30 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2005-06-03 18:57:30 +0000 |
commit | 15c04fd16e2f6a8725311eeff9f5093524c6cf4f (patch) | |
tree | e58bc3961641777ae6543f485c7b71220605932d /newlib/libc/stdlib/mallocr.c | |
parent | d9f491a77d770b849045182efed1e07a2efd0563 (diff) | |
download | cygnal-15c04fd16e2f6a8725311eeff9f5093524c6cf4f.tar.gz cygnal-15c04fd16e2f6a8725311eeff9f5093524c6cf4f.tar.bz2 cygnal-15c04fd16e2f6a8725311eeff9f5093524c6cf4f.zip |
2005-06-03 Jeff Johnston <jjohnstn@redhat.com>
* libc/stdlib/mallocr.c (MALLOC_COPY): Switch to use memmove
instead of memcpy.
Diffstat (limited to 'newlib/libc/stdlib/mallocr.c')
-rw-r--r-- | newlib/libc/stdlib/mallocr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/newlib/libc/stdlib/mallocr.c b/newlib/libc/stdlib/mallocr.c index 71886c14f..02f6a5d15 100644 --- a/newlib/libc/stdlib/mallocr.c +++ b/newlib/libc/stdlib/mallocr.c @@ -487,6 +487,10 @@ extern void __malloc_unlock(); #define HAVE_MEMCPY +/* Although the original macro is called USE_MEMCPY, newlib actually + uses memmove to handle cases whereby a platform's memcpy implementation + copies backwards and thus destructive overlap may occur in realloc + whereby we are reclaiming free memory prior to the old allocation. */ #ifndef USE_MEMCPY #ifdef HAVE_MEMCPY #define USE_MEMCPY 1 @@ -500,9 +504,11 @@ extern void __malloc_unlock(); #if __STD_C void* memset(void*, int, size_t); void* memcpy(void*, const void*, size_t); +void* memmove(void*, const void*, size_t); #else Void_t* memset(); Void_t* memcpy(); +Void_t* memmove(); #endif #endif @@ -544,7 +550,7 @@ do { \ *mcdst++ = *mcsrc++; \ *mcdst++ = *mcsrc++; \ *mcdst = *mcsrc ; \ - } else memcpy(dest, src, mcsz); \ + } else memmove(dest, src, mcsz); \ } while(0) #else /* !USE_MEMCPY */ |