From: Zoe Liu Date: Tue, 10 Nov 2015 01:21:11 +0000 (-0800) Subject: Fixed a few sanity checks. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2096296421c7fa56abb49470c0fbe7c4337b8a71;p=libvpx Fixed a few sanity checks. Change-Id: Ieec4a7be5945dc6de192e2d8292ab978baf47f53 --- diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index 4e88819b1..f5da07ea0 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -243,7 +243,7 @@ static void swap_frame_buffers(VP9Decoder *pbi) { decrease_ref_count(old_idx, frame_bufs, pool); // Release the reference frame in reference map. - if ((mask & 1) && old_idx >= 0) { + if (mask & 1) { decrease_ref_count(old_idx, frame_bufs, pool); } cm->ref_frame_map[ref_index] = cm->next_ref_frame_map[ref_index]; @@ -350,7 +350,7 @@ int vp9_receive_compressed_data(VP9Decoder *pbi, decrease_ref_count(old_idx, frame_bufs, pool); // Release the reference frame in reference map. - if ((mask & 1) && old_idx >= 0) { + if (mask & 1) { decrease_ref_count(old_idx, frame_bufs, pool); } ++ref_index; diff --git a/vp9/decoder/vp9_decoder.h b/vp9/decoder/vp9_decoder.h index 4a5188f8f..afa400941 100644 --- a/vp9/decoder/vp9_decoder.h +++ b/vp9/decoder/vp9_decoder.h @@ -128,7 +128,7 @@ void vp9_decoder_remove(struct VP9Decoder *pbi); static INLINE void decrease_ref_count(int idx, RefCntBuffer *const frame_bufs, BufferPool *const pool) { - if (idx >= 0) { + if (idx >= 0 && frame_bufs[idx].ref_count > 0) { --frame_bufs[idx].ref_count; // A worker may only get a free framebuffer index when calling get_free_fb. // But the private buffer is not set up until finish decoding header.