]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix think-o in previous patch
authorPaul Eggert <eggert@Penguin.CS.UCLA.EDU>
Tue, 14 Apr 2015 07:26:18 +0000 (00:26 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 14 Apr 2015 07:26:46 +0000 (00:26 -0700)
* src/window.c (count_windows, get_leaf_windows):
Don't optimize count_windows incorrectly.

src/window.c

index 461bb627df768b9b8322783dbde35ca47a88b5c3..0fcf82d43f4a93e62e54ae9d6bd72b1c95f68772 100644 (file)
@@ -6527,11 +6527,17 @@ delete_all_child_windows (Lisp_Object window)
 static ptrdiff_t
 count_windows (struct window *window)
 {
-  return get_leaf_windows (window, NULL, 0);
+  ptrdiff_t count = 1;
+  if (!NILP (window->next))
+    count += count_windows (XWINDOW (window->next));
+  if (WINDOWP (window->contents))
+    count += count_windows (XWINDOW (window->contents));
+  return count;
 }
 
-/* If vector FLAT is non-null, fill it with leaf windows under W,
-   starting at index I.  Value is last index + 1.  */
+
+/* Fill vector FLAT with leaf windows under W, starting at index I.
+   Value is last index + 1.  */
 static ptrdiff_t
 get_leaf_windows (struct window *w, struct window **flat, ptrdiff_t i)
 {
@@ -6540,11 +6546,7 @@ get_leaf_windows (struct window *w, struct window **flat, ptrdiff_t i)
       if (WINDOWP (w->contents))
        i = get_leaf_windows (XWINDOW (w->contents), flat, i);
       else
-       {
-         if (flat)
-           flat[i] = w;
-         i++;
-       }
+       flat[i++] = w;
 
       w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }