aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index ed58d18c618..0f7420c19ee 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -841,9 +841,11 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
841 { 841 {
842 Lisp_Object v2 = POP, v1 = TOP; 842 Lisp_Object v2 = POP, v1 = TOP;
843 CHECK_NUMBER (v1); 843 CHECK_NUMBER (v1);
844 EMACS_INT n = XINT (v1); 844 for (EMACS_INT n = XINT (v1); 0 < n && CONSP (v2); n--)
845 while (--n >= 0 && CONSP (v2)) 845 {
846 v2 = XCDR (v2); 846 v2 = XCDR (v2);
847 rarely_quit (n);
848 }
847 TOP = CAR (v2); 849 TOP = CAR (v2);
848 NEXT; 850 NEXT;
849 } 851 }
@@ -1273,9 +1275,11 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
1273 /* Exchange args and then do nth. */ 1275 /* Exchange args and then do nth. */
1274 Lisp_Object v2 = POP, v1 = TOP; 1276 Lisp_Object v2 = POP, v1 = TOP;
1275 CHECK_NUMBER (v2); 1277 CHECK_NUMBER (v2);
1276 EMACS_INT n = XINT (v2); 1278 for (EMACS_INT n = XINT (v2); 0 < n && CONSP (v1); n--)
1277 while (--n >= 0 && CONSP (v1)) 1279 {
1278 v1 = XCDR (v1); 1280 v1 = XCDR (v1);
1281 rarely_quit (n);
1282 }
1279 TOP = CAR (v1); 1283 TOP = CAR (v1);
1280 } 1284 }
1281 else 1285 else