|
|
||
|
Roberto Ierusalimschy wrote:
void *l_alloc (void *ud, void *block, size_t oldsize, size_t size) {
if (size == 0) {
free(block);
return NULL;
}
else {
void *newblock = malloc(size); /* alloc a new block */
if (newblock == NULL) return NULL;
if (block) {
size_t commonsize = (oldsize < size) ? oldsize : size;
memcpy(newblock, block, commonsize);
free(block);
}
return newblock;
}
}
Wouldn't it be better to do nothing and just return 'block' if (size <= oldsize) ?
(or am I missing something here?) Enrico