/[emacs]/emacs/lisp/emacs-lisp/bytecomp.el
ViewVC logotype

Diff of /emacs/lisp/emacs-lisp/bytecomp.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.171 by rms, Fri Jul 8 22:49:47 2005 UTC revision 2.172 by rms, Sat Jul 16 18:02:07 2005 UTC
# Line 3448  warnings during execution of BODY." Line 3448  warnings during execution of BODY."
3448          (args (cdr form)))          (args (cdr form)))
3449      (if (null args)      (if (null args)
3450          (byte-compile-form-do-effect t)          (byte-compile-form-do-effect t)
3451        (while (cdr args)        (byte-compile-and-recursion args failtag))))
3452          (byte-compile-form (car args))  
3453    ;; Handle compilation of a multi-argument `and' call.
3454    ;; We use tail recursion so we can use byte-compile-maybe-guarded.
3455    (defun byte-compile-and-recursion (rest failtag)
3456      (if (cdr rest)
3457          (progn
3458            (byte-compile-form (car rest))
3459          (byte-compile-goto-if nil for-effect failtag)          (byte-compile-goto-if nil for-effect failtag)
3460          (setq args (cdr args)))          (byte-compile-maybe-guarded (car rest)
3461        (byte-compile-form-do-effect (car args))            (byte-compile-and-recursion (cdr rest) failtag)))
3462        (byte-compile-out-tag failtag))))      (byte-compile-form-do-effect (car rest))
3463        (byte-compile-out-tag failtag)))
3464    
3465  (defun byte-compile-or (form)  (defun byte-compile-or (form)
3466    (let ((wintag (byte-compile-make-tag))    (let ((wintag (byte-compile-make-tag))

Legend:
Removed from v.2.171  
changed lines
  Added in v.2.172

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26