unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Noam Postavsky <npostavs@gmail.com>
To: Leah Neukirchen <leah@vuxu.org>
Cc: "Basil L. Contovounesios" <contovob@tcd.ie>, 35273@debbugs.gnu.org
Subject: bug#35273: "Marker does not point anywhere" when reading next article
Date: Tue, 16 Apr 2019 09:56:36 -0400	[thread overview]
Message-ID: <87tveyxdd7.fsf@gmail.com> (raw)
In-Reply-To: <87sguim6gn.fsf@vuxu.org> (Leah Neukirchen's message of "Tue, 16 Apr 2019 15:21:12 +0200")

Leah Neukirchen <leah@vuxu.org> writes:

> Noam Postavsky <npostavs@gmail.com> writes:
>
>> I think the signal-hook-function might have worked (though I forgot
>> to tell you to check the value of bug-35273-last-backtrace
>> afterwards) but it would only have a single frame of "redisplay" so
>> it would be useless.
>
> (It was nil.)

Oh, hmm.  Maybe the backtrace doesn't have `signal' in that
context, so nothing is collected.

>> And neither note_mouse_highlight nor mouse_face_overlay_overlaps call
>> marker_position, so I'm confused how we got there.  note_mouse_highlight
>> does call Fmarker_position, but that one doesn't signal an error.
>>
>> Maybe the debug info is messed up by optimization.  Could you try
>> recompiling with CFLAGS='-O0 -g3'?
>
> (gdb) bt
> #0  marker_position (marker=XIL(0x5555578a47c5)) at marker.c:680
> #1  0x00005555556fc2dd in mouse_face_overlay_overlaps (
>     overlay=XIL(0x5555578a4825)) at buffer.c:3047
> #2  0x0000555555606f5f in note_mouse_highlight (f=0x55555610dbf0, x=100, y=9)
>     at xdisp.c:31631

> (gdb) up
> #1  0x00005555556fc2dd in mouse_face_overlay_overlaps (
>     overlay=XIL(0x5555578a4825)) at buffer.c:3047
> 3047	  ptrdiff_t start = OVERLAY_POSITION (OVERLAY_START (overlay));
> (gdb) l
> 3042	   `mouse-face' property overlapping OVERLAY.  */
> 3043	
> 3044	bool
> 3045	mouse_face_overlay_overlaps (Lisp_Object overlay)
> 3046	{
> 3047	  ptrdiff_t start = OVERLAY_POSITION (OVERLAY_START (overlay));
> 3048	  ptrdiff_t end = OVERLAY_POSITION (OVERLAY_END (overlay));

Oh right, OVERLAY_POSITION calls marker_position.  I think the patch
below should paper over the problem, but I'm not sure if it's the right
thing.

--- i/src/buffer.c
+++ w/src/buffer.c
@@ -3044,8 +3044,13 @@ overlays_in (EMACS_INT beg, EMACS_INT end, bool extend,
 bool
 mouse_face_overlay_overlaps (Lisp_Object overlay)
 {
-  ptrdiff_t start = OVERLAY_POSITION (OVERLAY_START (overlay));
-  ptrdiff_t end = OVERLAY_POSITION (OVERLAY_END (overlay));
+  Lisp_Object start_pos = Fmarker_position (OVERLAY_START (overlay));
+  Lisp_Object end_pos = Fmarker_position (OVERLAY_END (overlay));
+  if (!(INTEGERP (start_pos) && INTEGERP (end_pos)))
+    return false;
+  intmax_t start, end;
+  integer_to_intmax (start_pos, &start);
+  integer_to_intmax (end_pos, &end);
   ptrdiff_t n, i, size;
   Lisp_Object *v, tem;
   Lisp_Object vbuf[10];







  reply	other threads:[~2019-04-16 13:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-14 13:42 bug#35273: "Marker does not point anywhere" when reading next article Leah Neukirchen
2019-04-14 16:31 ` Basil L. Contovounesios
2019-04-14 21:19   ` Leah Neukirchen
2019-04-16 12:38     ` Noam Postavsky
2019-04-16 12:50       ` Leah Neukirchen
2019-04-16 13:13         ` Noam Postavsky
2019-04-16 13:21           ` Leah Neukirchen
2019-04-16 13:56             ` Noam Postavsky [this message]
2019-04-16 14:04               ` Leah Neukirchen
2019-04-16 15:02               ` Eli Zaretskii
2019-04-20 12:05                 ` Noam Postavsky
2019-04-20 13:44                   ` Eli Zaretskii
2019-04-20 16:20                     ` Eli Zaretskii
2019-04-27 16:17                       ` Noam Postavsky
2019-04-27 16:49                         ` Eli Zaretskii
2019-04-27 19:28                           ` Noam Postavsky
2019-04-27 19:35                             ` Eli Zaretskii
2019-04-28 12:45                               ` Noam Postavsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tveyxdd7.fsf@gmail.com \
    --to=npostavs@gmail.com \
    --cc=35273@debbugs.gnu.org \
    --cc=contovob@tcd.ie \
    --cc=leah@vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).