Do not push invalid idx to stacks
BUG=aomedia:2830
Change-Id: I70fe727d443b27e1d7f97518d745de311b68615d
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index c9e5ab0..9350054 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -834,16 +834,20 @@
break;
case OVERLAY_UPDATE:
case KFFLT_OVERLAY_UPDATE:
- ref_map_index = stack_pop(ref_buffer_stack->arf_stack,
- &ref_buffer_stack->arf_stack_size);
- stack_push(ref_buffer_stack->gld_stack, &ref_buffer_stack->gld_stack_size,
- ref_map_index);
+ if (ref_buffer_stack->arf_stack_size) {
+ ref_map_index = stack_pop(ref_buffer_stack->arf_stack,
+ &ref_buffer_stack->arf_stack_size);
+ stack_push(ref_buffer_stack->gld_stack,
+ &ref_buffer_stack->gld_stack_size, ref_map_index);
+ }
break;
case INTNL_OVERLAY_UPDATE:
- ref_map_index = stack_pop(ref_buffer_stack->arf_stack,
- &ref_buffer_stack->arf_stack_size);
- stack_push(ref_buffer_stack->lst_stack, &ref_buffer_stack->lst_stack_size,
- ref_map_index);
+ if (ref_buffer_stack->arf_stack_size) {
+ ref_map_index = stack_pop(ref_buffer_stack->arf_stack,
+ &ref_buffer_stack->arf_stack_size);
+ stack_push(ref_buffer_stack->lst_stack,
+ &ref_buffer_stack->lst_stack_size, ref_map_index);
+ }
break;
default: assert(0 && "unknown type");
}
@@ -1348,6 +1352,7 @@
} else {
remapped_ref_idx[idx] = ref_buffer_stack->gld_stack[0];
}
+ assert(remapped_ref_idx[idx] != INVALID_IDX);
}
}