From bfd472a7d3ede320b55b7653e30ca37eba4d464a Mon Sep 17 00:00:00 2001 From: Daniel Kraft Date: Thu, 30 Jul 2009 21:49:00 +0200 Subject: [PATCH] Use explicit guile-primitive forms in the macro expansion of dotimes and dolist. --- module/language/elisp/runtime/macro-slot.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/module/language/elisp/runtime/macro-slot.scm b/module/language/elisp/runtime/macro-slot.scm index e74d74918..5a308a12a 100644 --- a/module/language/elisp/runtime/macro-slot.scm +++ b/module/language/elisp/runtime/macro-slot.scm @@ -121,9 +121,9 @@ (if (not (symbol? var)) (macro-error "expected symbol as dotimes variable")) `(let ((,var 0)) - (while (< ,var ,count) + (while ((guile-primitive <) ,var ,count) ,@body - (setq ,var (1+ ,var))) + (setq ,var ((guile-primitive 1+) ,var))) ,@(if (= (length args) 3) (list (caddr args)) '())))))) @@ -142,10 +142,11 @@ `(let (,var) (without-void-checks (,tailvar) (lexical-let ((,tailvar ,iter-list)) - (while (not (null ,tailvar)) - (setq ,var (car ,tailvar)) + (while ((guile-primitive not) + ((guile-primitive null?) ,tailvar)) + (setq ,var ((guile-primitive car) ,tailvar)) ,@body - (setq ,tailvar (cdr ,tailvar))) + (setq ,tailvar ((guile-primitive cdr) ,tailvar))) ,@(if (= (length args) 3) (list (caddr args)) '()))))))))) -- 2.20.1