ref: 72d431b69f676b5ba0f37dbeca11eeaa3cfd981c
parent: ed39c40a2ed9b75a3261d78357eeecfb06478995
author: Dmitry Kovalev <[email protected]>
date: Mon Mar 24 13:47:25 EDT 2014
Removing redundant vpx_free() call. above_seg_context is alreaded freed during vp9_remove_common() call. Change-Id: I16b72c710e71d2f143df2d47e876d220c8d374e0
--- a/vp9/decoder/vp9_decoder.c
+++ b/vp9/decoder/vp9_decoder.c
@@ -164,12 +164,10 @@
}
void vp9_remove_decompressor(VP9D_COMP *pbi) {
+ VP9_COMMON *const cm = &pbi->common;
int i;
- if (!pbi)
- return;
-
- vp9_remove_common(&pbi->common);
+ vp9_remove_common(cm);
vp9_worker_end(&pbi->lf_worker);
vpx_free(pbi->lf_worker.data1);
for (i = 0; i < pbi->num_tile_workers; ++i) {
@@ -181,15 +179,11 @@
vpx_free(pbi->tile_workers);
if (pbi->num_tile_workers) {
- VP9_COMMON *const cm = &pbi->common;
const int sb_rows =
mi_cols_aligned_to_sb(cm->mi_rows) >> MI_BLOCK_SIZE_LOG2;
- VP9LfSync *const lf_sync = &pbi->lf_row_sync;
-
- vp9_loop_filter_dealloc(lf_sync, sb_rows);
+ vp9_loop_filter_dealloc(&pbi->lf_row_sync, sb_rows);
}
- vpx_free(pbi->common.above_seg_context);
vpx_free(pbi);
}
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -132,7 +132,8 @@
static vpx_codec_err_t vp9_destroy(vpx_codec_alg_priv_t *ctx) {
int i;
- vp9_remove_decompressor(ctx->pbi);
+ if (ctx->pbi)
+ vp9_remove_decompressor(ctx->pbi);
for (i = NELEMENTS(ctx->mmaps) - 1; i >= 0; i--) {
if (ctx->mmaps[i].dtor)