From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.bugs Subject: bug#17125: 24.4.50; daemon mode: closing X client frame exits entire emacs Date: Wed, 02 Apr 2014 16:24:05 +0400 Message-ID: <533C0165.70507@yandex.ru> References: <533AC37A.7060703@yandex.ru> <533AD678.7080307@yandex.ru> <533AE900.5040507@yandex.ru> <533B880B.5070009@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070604060908000207080504" X-Trace: ger.gmane.org 1396525768 26512 80.91.229.3 (3 Apr 2014 11:49:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 3 Apr 2014 11:49:28 +0000 (UTC) Cc: 17125@debbugs.gnu.org To: "Peder O. Klingenberg" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Apr 03 13:49:22 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WVeLE-0001eo-9U for geb-bug-gnu-emacs@m.gmane.org; Thu, 03 Apr 2014 11:53:48 +0200 Original-Received: from localhost ([::1]:38294 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVKEN-0004xF-Fg for geb-bug-gnu-emacs@m.gmane.org; Wed, 02 Apr 2014 08:25:23 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56014) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVKED-0004k6-Pk for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 08:25:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WVKE4-0004Io-8K for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 08:25:13 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:59259) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVKE4-0004IZ-2O for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 08:25:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WVKE2-00071Y-C0 for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 08:25:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Antipov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Apr 2014 12:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17125 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 17125-submit@debbugs.gnu.org id=B17125.139644145426929 (code B ref 17125); Wed, 02 Apr 2014 12:25:02 +0000 Original-Received: (at 17125) by debbugs.gnu.org; 2 Apr 2014 12:24:14 +0000 Original-Received: from localhost ([127.0.0.1]:60441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WVKDF-00070G-Iz for submit@debbugs.gnu.org; Wed, 02 Apr 2014 08:24:14 -0400 Original-Received: from forward3l.mail.yandex.net ([84.201.143.136]:51255) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WVKDA-000704-Un for 17125@debbugs.gnu.org; Wed, 02 Apr 2014 08:24:10 -0400 Original-Received: from smtp3h.mail.yandex.net (smtp3h.mail.yandex.net [84.201.186.20]) by forward3l.mail.yandex.net (Yandex) with ESMTP id 449951501100; Wed, 2 Apr 2014 16:24:07 +0400 (MSK) Original-Received: from smtp3h.mail.yandex.net (localhost [127.0.0.1]) by smtp3h.mail.yandex.net (Yandex) with ESMTP id D13B31B43802; Wed, 2 Apr 2014 16:24:06 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp3h.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id 04S8qgFHiq-O6f0oVtB; Wed, 2 Apr 2014 16:24:06 +0400 (using TLSv1 with cipher AES128-SHA (128/128 bits)) (Client certificate not present) X-Yandex-Uniq: 41a2347a-ff5b-4ef2-a69c-93ebc669031a DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1396441446; bh=3ZODdIM1V7sznICOoew1AkTnoLfLq2P4aMreE7JtdQI=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=PMeoRJGHcjLqL8Ea9dd+jCPAAz7Uuy7qSmXYpC2SXcOmstXyiBCTHfqu18+Sp17OQ wwg+F4n/E3Y0XYcQGV3z8eBET2u7WWEQbu4jrKpmzX/FMsq93z9yR/Q/OgDcj5+GrL RwjIipK5gimgbNUg5QxIimf2uj1caFvYKSMTkNsY= Authentication-Results: smtp3h.mail.yandex.net; dkim=pass header.i=@yandex.ru User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:87685 Archived-At: This is a multi-part message in MIME format. --------------070604060908000207080504 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 --------------070604060908000207080504 Content-Type: text/x-patch; name="bug17125_fixed_3.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="bug17125_fixed_3.patch" === 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; --------------070604060908000207080504--