]> granicus.if.org Git - libvpx/commitdiff
Fix the memory leak due to missing free frame_mvs.
authorhkuang <hkuang@google.com>
Mon, 3 Nov 2014 20:25:18 +0000 (12:25 -0800)
committerhkuang <hkuang@google.com>
Tue, 4 Nov 2014 21:28:31 +0000 (13:28 -0800)
Change-Id: I2ceee7341d906259002c0ea31ea009ae32c04bfd

vp9/common/vp9_alloccommon.c

index 8a41f07f83e6fed9d741a9af5a1fa3920b27f3b8..5b8b2a9ecb0bcf12b102ca8750c509f4a02adf2f 100644 (file)
@@ -87,14 +87,14 @@ void vp9_free_ref_frame_buffers(VP9_COMMON *cm) {
   int i;
 
   for (i = 0; i < FRAME_BUFFERS; ++i) {
-    vp9_free_frame_buffer(&cm->frame_bufs[i].buf);
-
     if (cm->frame_bufs[i].ref_count > 0 &&
         cm->frame_bufs[i].raw_frame_buffer.data != NULL) {
       cm->release_fb_cb(cm->cb_priv, &cm->frame_bufs[i].raw_frame_buffer);
-      vpx_free(cm->frame_bufs[i].mvs);
       cm->frame_bufs[i].ref_count = 0;
     }
+    vpx_free(cm->frame_bufs[i].mvs);
+    cm->frame_bufs[i].mvs = NULL;
+    vp9_free_frame_buffer(&cm->frame_bufs[i].buf);
   }
 
   vp9_free_frame_buffer(&cm->post_proc_buffer);