From: Dmitry Antipov <dmantipov@yandex.ru>
To: "Peder O. Klingenberg" <peder@klingenberg.no>
Cc: 17125@debbugs.gnu.org
Subject: bug#17125: 24.4.50; daemon mode: closing X client frame exits entire emacs
Date: Wed, 02 Apr 2014 16:24:05 +0400 [thread overview]
Message-ID: <533C0165.70507@yandex.ru> (raw)
In-Reply-To: <ksvbust0fz.fsf_-_@netfonds.no>
[-- Attachment #1: Type: text/plain, Size: 506 bytes --]
On 04/02/2014 03:50 PM, Peder O. Klingenberg wrote:
> Success!
>
> Reverting bug17125_fixed.patch and applying your bug17125_fixed_2.patch,
> I have an emacs running in daemon mode which does not segfault anymore.
>
> Thanks! This bug was really messing up my workflow.
This patch prevents [] (empty vector, means "no match") from entering font cache.
IMO this is correct, but this breaks current behavior of font_list_entities.
Could you please also try a more compatible/conservative change?
Dmitry
[-- Attachment #2: bug17125_fixed_3.patch --]
[-- Type: text/x-patch, Size: 1453 bytes --]
=== modified file 'src/font.c'
--- src/font.c 2014-03-03 19:58:20 +0000
+++ src/font.c 2014-04-02 12:12:21 +0000
@@ -2753,14 +2753,10 @@
val = XCDR (val);
else
{
- Lisp_Object copy;
+ Lisp_Object copy = copy_font_spec (scratch_font_spec);
val = driver_list->driver->list (f, scratch_font_spec);
- if (NILP (val))
- val = zero_vector;
- else
- val = Fvconcat (1, &val);
- copy = copy_font_spec (scratch_font_spec);
+ val = NILP (val) ? zero_vector : Fvconcat (1, &val);
ASET (copy, FONT_TYPE_INDEX, driver_list->driver->type);
XSETCDR (cache, Fcons (Fcons (copy, val), XCDR (cache)));
}
@@ -2804,7 +2800,6 @@
&& (NILP (ftype) || EQ (driver_list->driver->type, ftype)))
{
Lisp_Object cache = font_get_cache (f, driver_list->driver);
- Lisp_Object copy;
ASET (work, FONT_TYPE_INDEX, driver_list->driver->type);
entity = assoc_no_quit (work, XCDR (cache));
@@ -2812,10 +2807,12 @@
entity = XCDR (entity);
else
{
+ Lisp_Object match, copy = copy_font_spec (work);
+
entity = driver_list->driver->match (f, work);
- copy = copy_font_spec (work);
+ match = NILP (entity) ? zero_vector : Fvector (1, &match);
ASET (copy, FONT_TYPE_INDEX, driver_list->driver->type);
- XSETCDR (cache, Fcons (Fcons (copy, entity), XCDR (cache)));
+ XSETCDR (cache, Fcons (Fcons (copy, match), XCDR (cache)));
}
if (! NILP (entity))
break;
next prev parent reply other threads:[~2014-04-02 12:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 22:47 bug#17125: 24.4.50; daemon mode: closing X client frame exits entire emacs Peder O. Klingenberg
[not found] ` <handler.17125.B.13959614234976.ack@debbugs.gnu.org>
2014-04-01 11:35 ` bug#17125: Acknowledgement (24.4.50; daemon mode: closing X client frame exits entire emacs) Peder O. Klingenberg
2014-04-01 13:47 ` Dmitry Antipov
2014-04-01 14:09 ` Peder O. Klingenberg
2014-04-01 15:08 ` Dmitry Antipov
2014-04-01 15:27 ` Andreas Schwab
2014-04-01 16:27 ` Dmitry Antipov
2014-04-01 21:02 ` Peder O. Klingenberg
2014-04-01 22:07 ` bug#17125: 24.4.50; daemon mode: closing X client frame exits entire emacs Peder O. Klingenberg
2014-04-02 3:46 ` bug#17125: Acknowledgement (24.4.50; daemon mode: closing X client frame exits entire emacs) Dmitry Antipov
2014-04-02 11:50 ` bug#17125: 24.4.50; daemon mode: closing X client frame exits entire emacs Peder O. Klingenberg
2014-04-02 12:24 ` Dmitry Antipov [this message]
2014-04-02 13:01 ` Peder O. Klingenberg
2014-07-11 9:01 ` Alexis
2014-10-02 2:46 ` bug#17125: Issue still present in pretest 24.3.94.1: in daemon mode, closing X client frame exits entire Emacs Alexis
2014-10-02 7:06 ` Dmitry Antipov
2014-10-02 10:29 ` Alexis
2014-10-02 11:37 ` Dmitry Antipov
2014-10-03 0:53 ` Alexis
2014-10-03 3:52 ` Dmitry Antipov
2014-10-03 6:39 ` Alexis
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533C0165.70507@yandex.ru \
--to=dmantipov@yandex.ru \
--cc=17125@debbugs.gnu.org \
--cc=peder@klingenberg.no \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.