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);
   }
 }