|
|
|
@@ -190,19 +190,9 @@ void *av_realloc_array(void *ptr, size_t nmemb, size_t size) |
|
|
|
int av_reallocp_array(void *ptr, size_t nmemb, size_t size) |
|
|
|
{ |
|
|
|
void **ptrptr = ptr; |
|
|
|
void *ret; |
|
|
|
if (size <= 0 || nmemb >= INT_MAX / size) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
if (nmemb <= 0) { |
|
|
|
av_freep(ptr); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
ret = av_realloc(*ptrptr, nmemb * size); |
|
|
|
if (!ret) { |
|
|
|
av_freep(ptr); |
|
|
|
*ptrptr = av_realloc_f(*ptrptr, nmemb, size); |
|
|
|
if (!*ptrptr && !(nmemb && size)) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
*ptrptr = ret; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|