]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/mem.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavutil / mem.c
index 87c2008a27d2808399e2861d669fca949d33282d..a58f432a2c0cf8975967425733b55bac921e2aa3 100644 (file)
@@ -143,6 +143,21 @@ void *av_realloc(void *ptr, size_t size)
 #endif
 }
 
+void *av_realloc_f(void *ptr, size_t nelem, size_t elsize)
+{
+    size_t size;
+    void *r;
+
+    if (av_size_mult(elsize, nelem, &size)) {
+        av_free(ptr);
+        return NULL;
+    }
+    r = av_realloc(ptr, size);
+    if (!r && size)
+        av_free(ptr);
+    return r;
+}
+
 void av_free(void *ptr)
 {
 #if CONFIG_MEMALIGN_HACK
@@ -168,6 +183,13 @@ void *av_mallocz(size_t size)
     return ptr;
 }
 
+void *av_calloc(size_t nmemb, size_t size)
+{
+    if (size <= 0 || nmemb >= INT_MAX / size)
+        return NULL;
+    return av_mallocz(nmemb * size);
+}
+
 char *av_strdup(const char *s)
 {
     char *ptr= NULL;