Subject: bug#12251: 24.2.50; crash in note_mouse_highlight

From: martin rudalics <[email-masked]>
Date: Thu, 23 Aug 2012 10:48:43 +0200

>> "#<window 139> is not a valid window"

The above means that we've been running Lisp code on a dead window and
that call was rejected with an error by `window-normalize-window'.  If
this happens during a call from C, we have a problem.

 > Martin, could this be due to your changes in revision 109644?

I don't know.  In revision 109644 I allowed to run Fposn_at_x_y on
internal windows too.  I doubt that this change can have any impact but
reverted it anyway.

Other from that, potential problems are to be categorized as follows:

(1) A frame has not been set up completely but one of its windows exists
     already.  I tried to fix this by changing Fset_window_buffer calls
     to set_window_buffer calls but maybe something still slips through.

(2) A window still exists although its frame has been already deleted.
     This would constitute a bug in delete_frame.

(3) C code tries to run on a window that has not yet been set up
     completely.  I can't imagine how this would happen.

(4) C code tries to run a window that has been deleted.  I have tried to
     catch these in revision 109644 but this will not help to avoid
     crashes.  It should help to localize the cause of a crash, though.

Drew's standard crash seems to indicate that there's still something
weird going on here.

BTW I see that note_mouse_highlight has

   /* Not on a window -> return.  */
   if (!WINDOWP (window))
     return;

Shouldn't the window be live here?

martin