diff options
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | aligned_memdup.c | 3 | ||||
| -rw-r--r-- | libsimple/array.h | 4 | ||||
| -rw-r--r-- | test.c | 2 | 
4 files changed, 7 insertions, 4 deletions
| @@ -222,7 +222,9 @@ all: libsimple.a $(TESTS)  $(OBJ): $(@:.o=.c) $(HDR)  $(TESTS): $(@:=.o) test.o libsimple.a  $(TESTS:=.o): $(@:.test.o=.c) $(HDR) test.h +  test.o: test.c $(HDR) test.h +	$(CC) -c -o $@ test.c $(CFLAGS) -DTEST -O0 -ffreestanding  libsimple.a: $(OBJ)  	$(AR) rc $@ $? diff --git a/aligned_memdup.c b/aligned_memdup.c index ec06c38..7b2ca71 100644 --- a/aligned_memdup.c +++ b/aligned_memdup.c @@ -17,6 +17,7 @@ libsimple_aligned_memdup(const void *s, size_t alignment, size_t n)  #else  #include "test.h" +#undef memset  int  main(void) @@ -26,7 +27,7 @@ main(void)  	void *p = libsimple_aligned_memdup(s, 4, 5);  	assert(p);  	assert(p != s); -	assert(!((uintptr_t)s % 4)); +	assert(!((uintptr_t)p % 4));  	if (have_custom_malloc()) {  		assert((info = get_allocinfo(p)));  		assert(info->size == 8); diff --git a/libsimple/array.h b/libsimple/array.h index 3e8eab1..b17966b 100644 --- a/libsimple/array.h +++ b/libsimple/array.h @@ -123,13 +123,13 @@  #endif -#define libsimple_arraycpy(d, s, n) libsimple_memcpy(d, s, (n) * sizeof *(s)) +#define libsimple_arraycpy(d, s, n) memcpy(d, s, (n) * sizeof *(s))  #ifndef arraycpy  # define arraycpy(...) libsimple_arraycpy(__VA_ARGS__)  #endif -#define libsimple_arraymove(d, s, n) libsimple_memmove(d, s, (n) * sizeof *(s)) +#define libsimple_arraymove(d, s, n) memmove(d, s, (n) * sizeof *(s))  #ifndef arraymove  # define arraymove(...) libsimple_arraymove(__VA_ARGS__)  #endif @@ -287,7 +287,7 @@ memset(void *s, int c, size_t n)  {  	char *str = s;  	struct allocinfo *info; -	if (just_alloced && s == just_alloced) { +	if (s == just_alloced && just_alloced && !c) {  		info = get_allocinfo(s);  		info->zeroed = MAX(info->zeroed, n);  	} | 
