Workaround for Rockbox's broken memset on ARM

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9476 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2006-04-03 22:57:39 +00:00
parent 8c177221b3
commit e59a050509

View file

@ -630,9 +630,25 @@ void *(Z_Calloc)(size_t n1, size_t n2, int tag, void **user
, const char *file, int line
#endif
)
{
return
(n1*=n2) ? memset((Z_Malloc)(n1, tag, user DA(file, line)), 0, n1) : NULL;
{ void* s;
/* The ARM version of memset doesn't correctly return a pointer
to the memory address being set, so we have to do this the long
way... Revert this when the ARM memset is fixed.
*/
#if 1
if (n1*=n2) {
s = (Z_Malloc)(n1,tag,user DA(file,line));
memset(s, 0, n1);
return s;
} else {
return NULL;
}
#else
return (n1*=n2) ? memset((Z_Malloc)(n1, tag, user DA(file, line)), 0, n1) : NULL;
#endif
}
char *(Z_Strdup)(const char *s, int tag, void **user