From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#41239: GTK builds crashing in XTread_socket after deleting a frame Date: Thu, 21 May 2020 21:23:49 -0400 Message-ID: <87lflklq3e.fsf@gmail.com> References: <83v9kz679v.fsf@gnu.org> <0af1b68c-93d3-2e8b-7810-41d60ef6a2a8@gmx.at> <837dxe61g7.fsf@gnu.org> <9395943c-9690-3d97-067d-77d65c27c187@gmx.at> <83d075uisz.fsf@gnu.org> <87pnazl6hg.fsf@gmail.com> <835zcq7fop.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="81677"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux) Cc: 41239@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri May 22 03:25:10 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jbwQv-000LAE-Vn for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 22 May 2020 03:25:10 +0200 Original-Received: from localhost ([::1]:50174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jbwQv-0005h6-1q for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 21 May 2020 21:25:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jbwQo-0005ga-11 for bug-gnu-emacs@gnu.org; Thu, 21 May 2020 21:25:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46115) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jbwQn-0001GJ-NS for bug-gnu-emacs@gnu.org; Thu, 21 May 2020 21:25:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jbwQn-0000p4-Kt for bug-gnu-emacs@gnu.org; Thu, 21 May 2020 21:25:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 May 2020 01:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41239 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 41239-submit@debbugs.gnu.org id=B41239.15901106503070 (code B ref 41239); Fri, 22 May 2020 01:25:01 +0000 Original-Received: (at 41239) by debbugs.gnu.org; 22 May 2020 01:24:10 +0000 Original-Received: from localhost ([127.0.0.1]:57653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbwPm-0000my-IA for submit@debbugs.gnu.org; Thu, 21 May 2020 21:24:10 -0400 Original-Received: from mail-qt1-f176.google.com ([209.85.160.176]:39386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbwPk-0000mk-Id for 41239@debbugs.gnu.org; Thu, 21 May 2020 21:23:56 -0400 Original-Received: by mail-qt1-f176.google.com with SMTP id l1so7150462qtp.6 for <41239@debbugs.gnu.org>; Thu, 21 May 2020 18:23:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=8FQXeUSnXV18zjI/xsJDZv1i6OFdRI/7703eFw9MhXM=; b=u/CwkLHiBJDhSULLOdZildEN0XVBHlOTrbwRO87IhoDISHpHT7SfSvojn0t8DluI1e DkCCseZQ9FrwPaD4O/mwqrR0fDmszZX301gnQpJtB6ApNLY1aOkZ4dxafep1HdKr+IV2 p4eRwbFS/baVIBxEU2qKpnZ+teinLb2/K81QiB5BjYmi+EzTB7JXv8wPH1YIjcWK4DHJ rZTyc+ZLaHX8OHPsZuowcvBcXeIc9zqwOoa2fLl9ZgEOWOunEQoyUT00j3MsobfWx48d ouAWaHW93d5XGgKuSLvVbXHPcc6bBC7h7Z3YJguIHyOtv1k7+Jx8jc+p6S8uLdfWOOsV GDjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=8FQXeUSnXV18zjI/xsJDZv1i6OFdRI/7703eFw9MhXM=; b=oXykcnLF37kmkEXMjFJK+2wocwjmwRtZhV+vKQpUdfMDa3BRxaZPpV4cjKpq1rnupy j8NeehaV+MNkJKyXV5YB+d8HJxPshafcXG6qDFyXhADtLQHP/gEaJ+DgGwSr5b1R36Fe dey9ainoq3WNYzCX4CSVNxYGRt6505zaSl4M0Q90uNmw/5xG8at2vP4dELayQIzYseIL PS6KzfHMcSSV7wjuakO73A9gKFhFowUQzbmXkrBkO4jtPpOYge3k4/anGatPTdLAxriJ sjehclrG2y7tk7fLhiMiw/vtR+qXVjBaehGzR+R74zrmI1lg3f0E1CM6nfvVoTbkbDRV AXug== X-Gm-Message-State: AOAM531BIpcvfmaGKY124ILRpq4UagRvUTA+g0cwiEnlAkjU+frkroCd YCCxADTGgs8viJkhLG2+nEfJ7Dl4 X-Google-Smtp-Source: ABdhPJwVHqZYdnGQu4gm9nV2snlmKMmUtsmBsskKSRnrP7BA48iXWnwXzMviDSfl1mYmqQ4FTZEvXw== X-Received: by 2002:ac8:100b:: with SMTP id z11mr13736901qti.157.1590110630860; Thu, 21 May 2020 18:23:50 -0700 (PDT) Original-Received: from minid (cbl-45-2-119-47.yyz.frontiernetworks.ca. [45.2.119.47]) by smtp.gmail.com with ESMTPSA id g14sm3027179qtr.52.2020.05.21.18.23.49 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 21 May 2020 18:23:50 -0700 (PDT) In-Reply-To: <835zcq7fop.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 May 2020 19:07:50 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:180731 Archived-At: Eli Zaretskii writes: > Can someone spot where we pass some wrong parameters to GTK/GIO > functions in xg_prepare_tooltip? Or something we do wrong in > xg_free_frame_widgets? The patch below seems to fix it. --- i/src/gtkutil.c +++ w/src/gtkutil.c @@ -1404,10 +1404,15 @@ xg_free_frame_widgets (struct frame *f) FRAME_X_WINDOW (f) = 0; /* Set to avoid XDestroyWindow in xterm.c */ FRAME_X_RAW_DRAWABLE (f) = 0; FRAME_GTK_OUTER_WIDGET (f) = 0; + if (x->ttip_widget) + { + /* Remove ttip_lbl from ttip_widget's custom slot before + destroying it, to avoid double-free (Bug#41239). */ + gtk_tooltip_set_custom (x->ttip_widget, NULL); + g_object_unref (G_OBJECT (x->ttip_widget)); + } if (x->ttip_lbl) gtk_widget_destroy (x->ttip_lbl); - if (x->ttip_widget) - g_object_unref (G_OBJECT (x->ttip_widget)); } }