bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#35273: "Marker does not point anywhere" when reading next article


From: Noam Postavsky
Subject: bug#35273: "Marker does not point anywhere" when reading next article
Date: Sat, 27 Apr 2019 15:28:01 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

tags 35273 + patch
quit

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Noam Postavsky <npostavs@gmail.com>
>> I managed to reproduce (wasn't too hard actually).  All the overlay
>> deletion seems to come from gnus.  I got hits from erase-buffer (called
>> by gnus), gnus-kill-all-overlays, and gnus-cite-delete-overlays.
>
> OK, thanks.  Then I think it would be better to test the overlay for
> being dead in xdisp.c, before we call mouse_face_overlay_overlaps.
> Also, a faster test would be to check that the marker's buffer is a
> NULL pointer, doing that doesn't require a call marker-position.
> WDYT?

Sure, that works.  Should I push to emacs-26?

>From 912e336d107cd1bb840cc921b4893bfc0d6cfa98 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Sat, 27 Apr 2019 15:22:11 -0400
Subject: [PATCH] Check if mouse_face_overlay was deleted (Bug#35273)

* src/xdisp.c (note_mouse_highlight): Check if the mouse_face_overlay
actually points to a buffer, before calling
mouse_face_overlay_overlaps on it.
---
 src/xdisp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index 0c3754a338..aa6e1bd2df 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -31526,7 +31526,9 @@ note_mouse_highlight (struct frame *f, int x, int y)
             is currently hidden to avoid Bug#30519.  */
          || (!hlinfo->mouse_face_hidden
              && OVERLAYP (hlinfo->mouse_face_overlay)
-             && mouse_face_overlay_overlaps (hlinfo->mouse_face_overlay)))
+             /* It's possible the overlay was deleted (Bug#35273).  */
+              && XMARKER (OVERLAY_START (hlinfo->mouse_face_overlay))->buffer
+              && mouse_face_overlay_overlaps (hlinfo->mouse_face_overlay)))
        {
          /* Find the highest priority overlay with a mouse-face.  */
          Lisp_Object overlay = Qnil;
-- 
2.11.0


reply via email to

[Prev in Thread] Current Thread [Next in Thread]