]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/keyboard.c (timer_check_2): Replace redundant test with assertion
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Aug 2022 16:34:47 +0000 (12:34 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Aug 2022 16:34:47 +0000 (12:34 -0400)
src/keyboard.c

index 02e02448ff8a8b8760e86e8855c4bd945dd2a07e..81e73a2833374d23a0db8de184cf539f4155a05b 100644 (file)
@@ -4642,27 +4642,27 @@ timer_check_2 (Lisp_Object timers, Lisp_Object idle_timers)
       /* If timer is ripe, run it if it hasn't been run.  */
       if (ripe)
        {
-         if (NILP (AREF (chosen_timer, 0)))
-           {
-             specpdl_ref count = SPECPDL_INDEX ();
-             Lisp_Object old_deactivate_mark = Vdeactivate_mark;
+         /* If we got here, presumably `decode_timer` has checked
+             that this timer has not yet been triggered.  */
+         eassert (NILP (AREF (chosen_timer, 0)));
+         specpdl_ref count = SPECPDL_INDEX ();
+         Lisp_Object old_deactivate_mark = Vdeactivate_mark;
 
-             /* Mark the timer as triggered to prevent problems if the lisp
-                code fails to reschedule it right.  */
-             ASET (chosen_timer, 0, Qt);
+         /* Mark the timer as triggered to prevent problems if the lisp
+            code fails to reschedule it right.  */
+         ASET (chosen_timer, 0, Qt);
 
-             specbind (Qinhibit_quit, Qt);
+         specbind (Qinhibit_quit, Qt);
 
-             call1 (Qtimer_event_handler, chosen_timer);
-             Vdeactivate_mark = old_deactivate_mark;
-             timers_run++;
-             unbind_to (count, Qnil);
+         call1 (Qtimer_event_handler, chosen_timer);
+         Vdeactivate_mark = old_deactivate_mark;
+         timers_run++;
+         unbind_to (count, Qnil);
 
-             /* Since we have handled the event,
-                we don't need to tell the caller to wake up and do it.  */
-              /* But the caller must still wait for the next timer, so
-                 return 0 to indicate that.  */
-           }
+         /* Since we have handled the event,
+            we don't need to tell the caller to wake up and do it.  */
+          /* But the caller must still wait for the next timer, so
+             return 0 to indicate that.  */
 
          nexttime = make_timespec (0, 0);
           break;