fix valgrind mem leak on garbage decode

Multiple decoders were getting allocated per frame.
If the decoder crashed we exitted with out freeing
them and the next time in we'd allocate over.

This fix removes the allocation and just has 8
boolcoders in the pbi structure

Change-Id: I638b5bda23b622b43b7992aec21dd7cf6f6278da
This commit is contained in:
Jim Bankoski
2012-09-11 16:30:19 -07:00
parent 2ff6d35064
commit 7b7ca65bfc
3 changed files with 2 additions and 17 deletions

View File

@@ -831,9 +831,7 @@ static void setup_token_decoder(VP8D_COMP *pbi,
num_token_partitions = 1 << pbi->common.multi_token_partition;
if (num_token_partitions > 1)
{
CHECK_MEM_ERROR(pbi->mbc, vpx_malloc(num_token_partitions *
sizeof(vp8_reader)));
bool_decoder = pbi->mbc;
bool_decoder = &pbi->mbc[0];
}
/* Check for partitions within the fragments and unpack the fragments
@@ -907,16 +905,6 @@ static void setup_token_decoder(VP8D_COMP *pbi,
#endif
}
static void stop_token_decoder(VP8D_COMP *pbi)
{
VP8_COMMON *pc = &pbi->common;
if (pc->multi_token_partition != ONE_PARTITION)
{
vpx_free(pbi->mbc);
pbi->mbc = NULL;
}
}
static void init_frame(VP8D_COMP *pbi)
{
@@ -1441,8 +1429,6 @@ int vp8_decode_frame(VP8D_COMP *pbi)
corrupt_tokens |= xd->corrupted;
}
stop_token_decoder(pbi);
/* Collect information about decoder corruption. */
/* 1. Check first boolean decoder for errors. */
pc->yv12_fb[pc->new_fb_idx].corrupted = vp8dx_bool_error(bc);