compat: move strdup(3) replacement to its own file

Move our implementation of strdup(3) out of compat/nedmalloc/ and
allow it to be used independently from USE_NED_ALLOCATOR.  The
original nedmalloc doesn't come with strdup() and doesn't need it.
Only _users_ of nedmalloc need it, which was added when we imported
it to our compat/ hierarchy.

This reduces the difference of our copy of nedmalloc from the
original, making it easier to update, and allows for easier testing
and reusing of our version of strdup().

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe
2016-09-03 17:59:15 +02:00
committed by Junio C Hamano
parent e0c1ceafc5
commit ca2baa3f75
4 changed files with 33 additions and 19 deletions

View File

@ -948,22 +948,6 @@ void **nedpindependent_comalloc(nedpool *p, size_t elems, size_t *sizes, void **
return ret;
}
#ifdef OVERRIDE_STRDUP
/*
* This implementation is purely there to override the libc version, to
* avoid a crash due to allocation and free on different 'heaps'.
*/
char *strdup(const char *s1)
{
size_t len = strlen(s1) + 1;
char *s2 = malloc(len);
if (s2)
memcpy(s2, s1, len);
return s2;
}
#endif
#if defined(__cplusplus)
}
#endif