shithub: libvpx

Download patch

ref: 74e8446e586380597441094bb9b4d82933fb305d
parent: 8c4552fb36e98785193137c6e092329566338982
author: James Berry <jamesberry@google.com>
date: Thu Dec 23 09:47:56 EST 2010

vpxenc stats_close() memleak fix

stats_close() was not freeing memory for
single pass runs.  It now takes in arg_passes
to determine when it should free memory.

Change-Id: I6623b7e30b76f9bf2e16008490f9b20484d03f31

--- a/vpxenc.c
+++ b/vpxenc.c
@@ -186,11 +186,11 @@
 }
 
 
-void stats_close(stats_io_t *stats)
+void stats_close(stats_io_t *stats, int last_pass)
 {
     if (stats->file)
     {
-        if (stats->pass == 1)
+        if (stats->pass == last_pass)
         {
 #if 0
 #elif USE_POSIX_MMAP
@@ -205,7 +205,7 @@
     }
     else
     {
-        if (stats->pass == 1)
+        if (stats->pass == last_pass)
             free(stats->buf.buf);
     }
 }
@@ -1692,7 +1692,7 @@
         }
 
         fclose(outfile);
-        stats_close(&stats);
+        stats_close(&stats, arg_passes-1);
         fprintf(stderr, "\n");
 
         if (one_pass_only)
--