GNU bug report logs - #20802
Segfault when showing non-GTK+ tooltip

Previous Next

Package: emacs;

Reported by: Tobias Getzner <tobias.getzner <at> gmx.de>

Date: Sat, 13 Jun 2015 09:19:02 UTC

Severity: normal

Tags: moreinfo

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #104 received at 20802 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: martin rudalics <rudalics <at> gmx.at>
Cc: tobias.getzner <at> gmx.de, 20802 <at> debbugs.gnu.org
Subject: Re: bug#20802: Segfault when showing non-GTK+ tooltip
Date: Thu, 18 Jun 2015 18:53:39 +0300
> Date: Thu, 18 Jun 2015 15:37:20 +0200
> From: martin rudalics <rudalics <at> gmx.at>
> CC: tobias.getzner <at> gmx.de, 20802 <at> debbugs.gnu.org
> 
>  > Why can't we simply move the code that frees the image cache to
>  > delete_terminal?  There's only one image cache for each terminal, and
>  > it's shared by all frames on that terminal, right?  And we call
>  > delete-terminal when we delete the last frame on the terminal, right?
> 
> ‘delete-terminal’ can run into precisely the same problem I described in
> my previous scenario.  IMHO we have to give up the idea of using
> refcounts to tell whether a frame might still use some object - they are
> not up to this task.

These are 2 different issues.

Do you agree that there's no need to decide whether we should free the
image cache while deleting a frame, and instead do that when we delete
a terminal?  If you agree, we should move the code that frees the
image cache there.

If, in addition, you are saying that we will sometimes delete a
terminal when it still has live frames, then we could simply count the
frames on a terminal instead of using a refcount.  Something like this
(we already have similar code in delete_frame):

      count = 0;
      FOR_EACH_FRAME (tail, frame1)
	if (FRAME_TERMINAL (XFRAME (frame)) == FRAME_TERMINAL (XFRAME (frame1)))
	  count++;




This bug report was last modified 3 years and 32 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.