Subject: bug#78444: 30.1; Crash in GC (vector_marked_p)

From: martin rudalics <[email-masked]>
Date: Mon, 16 Jun 2025 09:25:57 +0200

> Yes, it was the latter, i.e.
 >
 >        if (update_miniwindow_p)
 > {
 >   Lisp_Object mini_window = FRAME_MINIBUF_WINDOW (sf);
 >
 >   displayed_buffer = XBUFFER (XWINDOW (mini_window)->contents);
 > 17526 : internal_condition_case_1 (redisplay_window_1, mini_window,
 >      list_of_error,
 >      redisplay_window_error);
 > }

Can you try

diff --git a/src/window.c b/src/window.c
index 1ac004af5e0..28ee8bc4035 100644
--- a/src/window.c
+++ b/src/window.c
@@ -303,6 +303,9 @@ wset_buffer (struct window *w, Lisp_Object val)
      /* Make sure that we do not assign the buffer
         to an internal window.  */
      eassert (MARKERP (w->start) && MARKERP (w->pointm));
+  else
+    eassert (!w->mini);
+
    w->contents = val;
    adjust_window_count (w, 1);
  }

and get us a backtrace when it's hit.

martin