# HG changeset patch # User Gerd Moellmann # Date 968326747 0 # Node ID 82556406aa4509b552212f5f66cd885777b91785 # Parent 8797df6a9fa277937bf075f52b87da6e742d63c2 (filtered-frame-list): Reduce consing. (frames-on-display-list): Call frame-parameter instead of frame-parameters. diff -r 8797df6a9fa2 -r 82556406aa45 lisp/frame.el --- a/lisp/frame.el Thu Sep 07 11:37:48 2000 +0000 +++ b/lisp/frame.el Thu Sep 07 11:39:07 2000 +0000 @@ -494,13 +494,13 @@ (defun filtered-frame-list (predicate) "Return a list of all live frames which satisfy PREDICATE." - (let ((frames (frame-list)) - good-frames) + (let* ((frames (frame-list)) + (list frames)) (while (consp frames) - (if (funcall predicate (car frames)) - (setq good-frames (cons (car frames) good-frames))) + (unless (funcall predicate (car frames)) + (setcar frames nil)) (setq frames (cdr frames))) - good-frames)) + (delq nil list))) (defun minibuffer-frame-list () "Return a list of all frames with their own minibuffers." @@ -512,12 +512,9 @@ "Return a list of all frames on DISPLAY. DISPLAY is a name of a display, a string of the form HOST:SERVER.SCREEN. If DISPLAY is omitted or nil, it defaults to the selected frame's display." - (let* ((display (or display - (cdr (assoc 'display (frame-parameters))))) - (func - (function (lambda (frame) - (eq (cdr (assoc 'display (frame-parameters frame))) - display))))) + (let* ((display (or display (frame-parameter nil 'display))) + (func #'(lambda (frame) + (eq (frame-parameter frame 'display) display)))) (filtered-frame-list func))) (defun framep-on-display (&optional display)