From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.bugs Subject: bug#43146: 27.1; D-Bus property handling incomplete Date: Wed, 02 Sep 2020 19:58:36 +0200 Message-ID: <87zh68hxgz.fsf@gmx.de> References: <873642mfxd.fsf@ccss.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16795"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 43146@debbugs.gnu.org To: Hugh Daschbach Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Sep 02 19:59:34 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 1kDX2k-0004GH-4w for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Sep 2020 19:59:34 +0200 Original-Received: from localhost ([::1]:51110 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDX2i-0000T8-Q8 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Sep 2020 13:59:33 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDX2E-0000Sz-Id for bug-gnu-emacs@gnu.org; Wed, 02 Sep 2020 13:59:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49102) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDX2E-0007Ue-9p for bug-gnu-emacs@gnu.org; Wed, 02 Sep 2020 13:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kDX2E-0005LQ-83 for bug-gnu-emacs@gnu.org; Wed, 02 Sep 2020 13:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Albinus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Sep 2020 17:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43146 X-GNU-PR-Package: emacs Original-Received: via spool by 43146-submit@debbugs.gnu.org id=B43146.159906952820524 (code B ref 43146); Wed, 02 Sep 2020 17:59:02 +0000 Original-Received: (at 43146) by debbugs.gnu.org; 2 Sep 2020 17:58:48 +0000 Original-Received: from localhost ([127.0.0.1]:60648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kDX1z-0005Ky-Mn for submit@debbugs.gnu.org; Wed, 02 Sep 2020 13:58:47 -0400 Original-Received: from mout.gmx.net ([212.227.15.18]:54361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kDX1y-0005Kj-5U for 43146@debbugs.gnu.org; Wed, 02 Sep 2020 13:58:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1599069518; bh=8bKyOqBSaIjKXCn+JEp8KjcPAAJwhhTjyUq6zdk5N98=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=kdCU2LGnEamlaZr/TVPF+gmy/p76jF728DYbri/5VafW4alEKrtxmW0EEpRHakUCi 073X5xdJIgzt2ChU0LAZrFWcS2bngsnLTmCsu3GGAAdj06P3qTiGRoYw5QePTKNmyv ANE3f/U2UnZTHgCt7QZMFMA1YdhSVqJq5UNXs+JM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from gandalf.gmx.de ([213.220.145.17]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M2O2W-1k9ffs1HSA-003uYf; Wed, 02 Sep 2020 19:58:38 +0200 In-Reply-To: <873642mfxd.fsf@ccss.com> (Hugh Daschbach's message of "Mon, 31 Aug 2020 18:41:50 -0700") X-Provags-ID: V03:K1:Ww7L633L45GCQWDiVk+vLd3ugWV0OMjg48Wx/zQeGnemLZPGoA9 WDhVbhwuzSnICZYcau6lwtk/H/xjBHApK2Y+7H1AZKX4l7iYCxQzgMwDH/MxecIL1aookh9 Qhgm9k1K8ek6NJYCPzz0Oit0Mrm1e8e+vuzBJWjlLL9Bw05nxP/runap9I7MnFH6q6WALu7 PEk3LyCbDqACxd5OT4leA== X-UI-Out-Filterresults: notjunk:1;V03:K0:rEJi/NofmgQ=:u3DIB3fMu/eRy1tZnixZxO qA4g/haqXfjsLh4DxW8yJgeryzhhVh6tpvo/2HhkLbanoWsErbZrW7UA6hVvVCjSETqC+V5YU mBh6ndfQd1Mx6jC6AEXrxB6eqMqZHHCUjWtjSAiSViKUI5JLNVD+ZnZkGrQqfWdhYK1+/1Ysb EVyNehpiPZvWk6gHaxTVatVOX5yQ/+s9vYpfHHIJl3KTGaMZjYvNBJELzG3Su7lKrk/9GCmXM 2au8Kl25o/5pzF4ECT59GNFx/3646R3yWfty4WxzBucs+wq3g05eEeKm2s8XOPVqIWQqd+dd+ T9vKetKC9dLx5HxbdFy76MQ01GV20Pn2OCfFz18F2PzouTRBczSlICTxKJOdwtFXB//Z1UgaH vNkmAwHLjJCcK2196gzfvHcSKYn5+lWdLh2Y1CY5feqYBITLUE9Jqfa9JvVZUUdXcqkDR50Yx fuKVP8GUvRTNboA/lKRTnleQGT6ck9udDE7Ir05IMZaaUxpaoNGB7SWpC4aTbVb0pUms+Pih8 T5I04eb+6NAwjzTQ2nS6ldgdDSKU57A0SJf9wA9NiofpfnwootzjuPAbT5Bhaa11yHRzH/8eB +HICN6/MLzSFKV+PcyU5Nt3CWqTvDZ6TjBNKtbhtyHT3j8K6ZCI7+zxAawXnNPeSm1mZV3f7l xMxuQ5OG4xKxiDmdSGYxmiydMtX/7PteLlmHaEC71elsehHbugIK/J9VkBIpQu4YXDrOSpHwW 51ayTDdJivfn3JqO0DvrFgk811959MTisJiEfB+qyetGyVuPSN0faHYJhxU7ONKSi6+sd934 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:186951 Archived-At: --=-=-= Content-Type: text/plain Hugh Daschbach writes: Hi Hugh, > When the same D-Bus property is registered on an interface with two > separate paths, only the last property is preserved. Methods and > signals registered on the same interface on different paths are > preserved. I could reproduce the bug locally. The following patch solves it for me, could you pls check? Best regards, Michael. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment Content-Transfer-Encoding: quoted-printable *** /tmp/ediffkDjiXo 2020-09-02 19:51:41.334910903 +0200 =2D-- /home/albinus/src/emacs/lisp/net/dbus.el 2020-09-02 19:40:00.1736496= 89 +0200 *************** *** 1484,1498 **** ;; Create a hash table entry. We use nil for the unique name, ;; because the property might be accessed from anybody. ! (let ((key (list :property bus interface property)) ! (val ! (list (list nil service path (cons (if emits-signal (list access :emits-signal) (list access)) ! value))))) ! (puthash key val dbus-registered-objects-table) ;; Return the object. (list key (list service path)))) =2D-- 1484,1502 ---- ;; Create a hash table entry. We use nil for the unique name, ;; because the property might be accessed from anybody. ! (let* ((key (list :property bus interface property)) ! ;; Remove possible existing entry, because it must be overwritt= en. ! (val (seq-remove ! (lambda (item) ! (equal (butlast item) (list nil service path))) ! (gethash key dbus-registered-objects-table))) ! (entry (list nil service path (cons (if emits-signal (list access :emits-signal) (list access)) ! value)))) ! (puthash key (cons entry val) dbus-registered-objects-table) ;; Return the object. (list key (list service path)))) *************** *** 1509,1517 **** (cond ;; "Get" returns a variant. ((string-equal method "Get") ! (let ((entry (gethash (list :property bus interface property) ! dbus-registered-objects-table))) ! (when (string-equal path (nth 2 (car entry))) `((:variant ,(cdar (last (car entry)))))))) ;; "Set" expects a variant. =2D-- 1513,1527 ---- (cond ;; "Get" returns a variant. ((string-equal method "Get") ! (let ((entry ! ;; Remove entries not belonging to this case. ! (seq-remove ! (lambda (item) ! (not (string-equal path (nth 2 item)))) ! (gethash (list :property bus interface property) ! dbus-registered-objects-table)))) ! ! (when (string-equal path (nth 2 (car entry))) `((:variant ,(cdar (last (car entry)))))))) ;; "Set" expects a variant. --=-=-=--