diff input/input.c @ 35327:891b14e68b02

Revert r35388. The code is a bit confusing, but peeked commands should never be freed.
author reimar
date Thu, 15 Nov 2012 18:44:19 +0000
parents a87b3429d9a9
children 6ac59489c815
line wrap: on
line diff
--- a/input/input.c	Sat Nov 10 23:52:19 2012 +0000
+++ b/input/input.c	Thu Nov 15 18:44:19 2012 +0000
@@ -1907,6 +1907,7 @@
 int
 mp_input_check_interrupt(int time) {
   mp_cmd_t *cmd = mp_input_get_cmd(time,0,1);
+  // Note: we must not free this, since we only peeked
   if (!cmd)
     return 0;
   switch(cmd->id) {
@@ -1914,11 +1915,9 @@
   case MP_CMD_PLAY_TREE_STEP:
   case MP_CMD_PLAY_TREE_UP_STEP:
   case MP_CMD_PLAY_ALT_SRC_STEP:
-    mp_cmd_free(cmd);
     // The cmd will be executed when we are back in the main loop
     return 1;
   }
-  mp_cmd_free(cmd);
   // remove the cmd from the queue
   cmd = mp_input_get_cmd(time,0,0);
   mp_cmd_free(cmd);