GNU bug report logs - #59875
30.0.50; [PATCH] fallout c73f99f

Previous Next

Package: emacs;

Reported by: dick <dick.r.chiang <at> gmail.com>

Date: Wed, 7 Dec 2022 09:19:02 UTC

Severity: normal

Tags: patch

Found in version 30.0.50

Done: Po Lu <luangruo <at> yahoo.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: dick <dick.r.chiang <at> gmail.com>
Subject: bug#59875: closed (Re: bug#59875: 30.0.50; [PATCH] fallout c73f99f)
Date: Thu, 08 Dec 2022 01:59:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#59875: 30.0.50; [PATCH] fallout c73f99f

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 59875 <at> debbugs.gnu.org.

-- 
59875: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59875
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Po Lu <luangruo <at> yahoo.com>
To: dick <dick.r.chiang <at> gmail.com>
Cc: 59875-done <at> debbugs.gnu.org
Subject: Re: bug#59875: 30.0.50; [PATCH] fallout c73f99f
Date: Thu, 08 Dec 2022 09:58:08 +0800
dick <dick.r.chiang <at> gmail.com> writes:

>  src/xselect.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/src/xselect.c b/src/xselect.c
> index 121b17df1b0..78820cb3a7c 100644
> --- a/src/xselect.c
> +++ b/src/xselect.c
> @@ -624,6 +624,13 @@ x_pop_current_selection_request (void)
>    xfree (tem);
>  }
>  
> +static bool
> +x_selection_for_multiple (struct selection_data *data)
> +{
> +  return (Atom *) data->data
> +    == &selection_request_stack->conversion_fail_tag;
> +}
> +
>  /* Used as an unwind-protect clause so that, if a selection-converter signals
>     an error, we tell the requestor that we were unable to do what they wanted
>     before we throw to top-level or go into the debugger or whatever.  */
> @@ -639,7 +646,7 @@ x_selection_request_lisp_error (void)
>    for (cs = frame->converted_selections; cs; cs = next)
>      {
>        next = cs->next;
> -      if (cs->data)
> +      if (cs->data && ! x_selection_for_multiple (cs))
>  	xfree (cs->data);
>        xfree (cs);
>      }
> @@ -839,8 +846,7 @@ x_start_selection_transfer (struct x_display_info *dpyinfo, Window requestor,
>    secs = timeout / 1000;
>    nsecs = (timeout % 1000) * 1000000;
>  
> -  if ((Atom *) data->data
> -      == &selection_request_stack->conversion_fail_tag)
> +  if (x_selection_for_multiple (data))
>      return;
>  
>    transfer = xzalloc (sizeof *transfer);

No.  I will install a better fix and am closing this bug.
Don't you think `x_selection_for_multiple' is a misleading name? Did you
try to understand the code there?

In addition, if you do not write even a real commit message for a patch
you attach, or explain what it fixes, you are simply wasting everyone
else's time.  If you see a bug, it's better to just report it rather
than submitting a patch like this.

[Message part 3 (message/rfc822, inline)]
From: dick <dick.r.chiang <at> gmail.com>
To: bug-gnu-emacs <bug-gnu-emacs <at> gnu.org>
Subject: 30.0.50; [PATCH] fallout c73f99f
Date: Wed, 07 Dec 2022 00:08:17 -0500
[0001-Squashed-commit-of-the-following.patch (text/x-diff, inline)]
From 661d89a09b6beb9694250f7d91b0b4b47ecc6c61 Mon Sep 17 00:00:00 2001
From: dickmao <dick.r.chiang <at> gmail.com>
Date: Wed, 7 Dec 2022 00:03:17 -0500
Subject: [PATCH] Squashed commit of the following:

commit 18220432ba76608d579b00a96e03567b715461da
Author: dickmao <none>
Date:   Tue Dec 6 23:55:17 2022 -0500

    fallout c73f99f
---
 src/xselect.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/xselect.c b/src/xselect.c
index 121b17df1b0..78820cb3a7c 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -624,6 +624,13 @@ x_pop_current_selection_request (void)
   xfree (tem);
 }
 
+static bool
+x_selection_for_multiple (struct selection_data *data)
+{
+  return (Atom *) data->data
+    == &selection_request_stack->conversion_fail_tag;
+}
+
 /* Used as an unwind-protect clause so that, if a selection-converter signals
    an error, we tell the requestor that we were unable to do what they wanted
    before we throw to top-level or go into the debugger or whatever.  */
@@ -639,7 +646,7 @@ x_selection_request_lisp_error (void)
   for (cs = frame->converted_selections; cs; cs = next)
     {
       next = cs->next;
-      if (cs->data)
+      if (cs->data && ! x_selection_for_multiple (cs))
 	xfree (cs->data);
       xfree (cs);
     }
@@ -839,8 +846,7 @@ x_start_selection_transfer (struct x_display_info *dpyinfo, Window requestor,
   secs = timeout / 1000;
   nsecs = (timeout % 1000) * 1000000;
 
-  if ((Atom *) data->data
-      == &selection_request_stack->conversion_fail_tag)
+  if (x_selection_for_multiple (data))
     return;
 
   transfer = xzalloc (sizeof *transfer);
-- 
2.36.1

[Message part 5 (text/plain, inline)]


In Commercial Emacs 0.3.1snapshot 0c65c33 in dev (upstream 30.0.50,
x86_64-pc-linux-gnu) built on dick
Repository revision: 0c65c33e62efb993b422fc53c4551bd406e69309
Repository branch: dev
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Ubuntu 20.04.4 LTS

Configured using:
 'configure WERROR_CFLAGS=-Werror --prefix=/home/dick/.local
 --with-tree-sitter CC=gcc-10
 PKG_CONFIG_PATH=/home/dick/.local/lib/pkgconfig CXX=gcc-10'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
TREE_SITTER LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM
XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Magit Log

Minor modes in effect:
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  projectile-mode: t
  flx-ido-mode: t
  global-xlsp-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  winner-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/.emacs.d/elpa/go-rename-20190805.2101/go-rename hides /home/dick/.emacs.d/elpa/go-mode-1.6.0/go-rename
/home/dick/.emacs.d/elpa/go-guru-20181012.330/go-guru hides /home/dick/.emacs.d/elpa/go-mode-1.6.0/go-guru
/home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-0.1.0.1snapshot20200507.1518/lv
/home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal
/home/dick/.emacs.d/elpa/request-deferred-0.2.0/request-deferred hides /home/dick/.emacs.d/elpa/request-0.3.3/request-deferred
/home/dick/.emacs.d/elpa/chess-2.0.5/_pkg hides /home/dick/.local/share/emacs/site-lisp/_pkg
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-pos hides /home/dick/.local/share/emacs/site-lisp/chess-pos
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-module hides /home/dick/.local/share/emacs/site-lisp/chess-module
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ucb hides /home/dick/.local/share/emacs/site-lisp/chess-ucb
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-scid hides /home/dick/.local/share/emacs/site-lisp/chess-scid
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-puzzle hides /home/dick/.local/share/emacs/site-lisp/chess-puzzle
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-irc hides /home/dick/.local/share/emacs/site-lisp/chess-irc
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-network hides /home/dick/.local/share/emacs/site-lisp/chess-network
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-autosave hides /home/dick/.local/share/emacs/site-lisp/chess-autosave
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-engine hides /home/dick/.local/share/emacs/site-lisp/chess-engine
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-tutorial hides /home/dick/.local/share/emacs/site-lisp/chess-tutorial
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-german hides /home/dick/.local/share/emacs/site-lisp/chess-german
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-file hides /home/dick/.local/share/emacs/site-lisp/chess-file
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-random hides /home/dick/.local/share/emacs/site-lisp/chess-random
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-stockfish hides /home/dick/.local/share/emacs/site-lisp/chess-stockfish
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-pgn hides /home/dick/.local/share/emacs/site-lisp/chess-pgn
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-kibitz hides /home/dick/.local/share/emacs/site-lisp/chess-kibitz
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-eco hides /home/dick/.local/share/emacs/site-lisp/chess-eco
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-display hides /home/dick/.local/share/emacs/site-lisp/chess-display
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-var hides /home/dick/.local/share/emacs/site-lisp/chess-var
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-test hides /home/dick/.local/share/emacs/site-lisp/chess-test
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ply hides /home/dick/.local/share/emacs/site-lisp/chess-ply
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-message hides /home/dick/.local/share/emacs/site-lisp/chess-message
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics1 hides /home/dick/.local/share/emacs/site-lisp/chess-ics1
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-phalanx hides /home/dick/.local/share/emacs/site-lisp/chess-phalanx
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-game hides /home/dick/.local/share/emacs/site-lisp/chess-game
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-log hides /home/dick/.local/share/emacs/site-lisp/chess-log
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-plain hides /home/dick/.local/share/emacs/site-lisp/chess-plain
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-perft hides /home/dick/.local/share/emacs/site-lisp/chess-perft
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-glaurung hides /home/dick/.local/share/emacs/site-lisp/chess-glaurung
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ai hides /home/dick/.local/share/emacs/site-lisp/chess-ai
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-fruit hides /home/dick/.local/share/emacs/site-lisp/chess-fruit
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-uci hides /home/dick/.local/share/emacs/site-lisp/chess-uci
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-epd hides /home/dick/.local/share/emacs/site-lisp/chess-epd
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-database hides /home/dick/.local/share/emacs/site-lisp/chess-database
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-link hides /home/dick/.local/share/emacs/site-lisp/chess-link
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-transport hides /home/dick/.local/share/emacs/site-lisp/chess-transport
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-none hides /home/dick/.local/share/emacs/site-lisp/chess-none
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-polyglot hides /home/dick/.local/share/emacs/site-lisp/chess-polyglot
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-crafty hides /home/dick/.local/share/emacs/site-lisp/chess-crafty
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-chat hides /home/dick/.local/share/emacs/site-lisp/chess-chat
/home/dick/.emacs.d/elpa/chess-2.0.5/chess hides /home/dick/.local/share/emacs/site-lisp/chess
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-images hides /home/dick/.local/share/emacs/site-lisp/chess-images
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-gnuchess hides /home/dick/.local/share/emacs/site-lisp/chess-gnuchess
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-fen hides /home/dick/.local/share/emacs/site-lisp/chess-fen
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics hides /home/dick/.local/share/emacs/site-lisp/chess-ics
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics2 hides /home/dick/.local/share/emacs/site-lisp/chess-ics2
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-common hides /home/dick/.local/share/emacs/site-lisp/chess-common
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-input hides /home/dick/.local/share/emacs/site-lisp/chess-input
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-announce hides /home/dick/.local/share/emacs/site-lisp/chess-announce
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-clock hides /home/dick/.local/share/emacs/site-lisp/chess-clock
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-sound hides /home/dick/.local/share/emacs/site-lisp/chess-sound
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-sjeng hides /home/dick/.local/share/emacs/site-lisp/chess-sjeng
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-algebraic hides /home/dick/.local/share/emacs/site-lisp/chess-algebraic
/home/dick/.emacs.d/elpa/transient-0.3.7snapshot/transient hides /home/dick/.local/share/emacs/0.3.1/lisp/transient

Features:
(shadow sort vc-svn footnote mail-extr gnus-msg gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku
url-file svg dom gnus-group mm-url gnus-undo gnus-start gnus-dbus dbus
xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601
gnus-spec gnus-int gnus-range gnus-win magit-extras mule-util face-remap
magit-patch-changelog magit-patch magit-submodule magit-obsolete
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log which-func imenu edebug debug backtrace
magit-diff smerge-mode diff diff-mode git-commit log-edit pcvs-util
add-log magit-core magit-margin magit-transient magit-process
with-editor shell pcomplete server magit-mode transient emacsbug message
yank-media puny dired-x dired dired-loaddefs rfc822 mml mml-sec epa epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
paredit-ext paredit inf-ruby ruby-mode smie haskell-interactive-mode
haskell-presentation-mode haskell-process haskell-session
haskell-compile haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme haskell-align-imports
haskell-complete-module haskell-ghc-support noutline outline
flymake-proc flymake etags fileloop generator dabbrev haskell-customize
hydra lv use-package-ensure solarized-theme solarized-definitions
projectile lisp-mnt ibuf-ext ibuffer ibuffer-loaddefs thingatpt
magit-autorevert autorevert magit-git magit-base magit-section
format-spec crm dash rx compat-27 compat-26 compat grep compile comint
ansi-osc ansi-color gnus nnheader range mail-utils mm-util mail-prsvr
gnus-util text-property-search time-date flx-ido flx xlsp xlsp-xref
xlsp-server xlsp-company company-capf company xlsp-handle-notification
xlsp-handle-request xlsp-struct xlsp-utils jsonrpc pcase warnings
filenotify google-translate-default-ui google-translate-core-ui facemenu
color ido google-translate-core google-translate-tk
google-translate-backend auto-complete advice popup cus-edit pp cus-load
icons wid-edit emms-player-mplayer emms-player-simple emms emms-compat
hl-line winner edmacro kmacro cl-extra help-mode xref project ring
use-package-bind-key bind-key easy-mmode use-package-core derived
company-go-autoloads corfu-autoloads debbugs-autoloads
elpaso-disc-autoloads elpaso-autoloads find-func flycheck-autoloads
finder-inf go-mode-autoloads json-reformat-autoloads
json-snatcher-autoloads lsp-bridge-autoloads lsp-mode-autoloads
lv-autoloads magit-autoloads nnreddit-autoloads cask-autoloads
epl-autoloads posframe-autoloads projectile-autoloads
rust-mode-autoloads sml-mode-autoloads tornado-template-mode-autoloads
typescript-mode-autoloads request-autoloads info wordnut-autoloads
xlsp-autoloads markdown-mode-autoloads company-autoloads
yasnippet-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile cldefs url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 630570 17130)
 (symbols 48 39314 0)
 (strings 32 142172 8426)
 (string-bytes 1 4801429)
 (vectors 16 58996)
 (vector-slots 8 726471 9149)
 (floats 8 386 563)
 (intervals 56 3035 355)
 (buffers 984 12))

This bug report was last modified 2 years and 223 days ago.

Previous Next


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