Subject: Re: bug#55870: GNU Emacs 26.3, Select All(C-x h) does not work

From: Eli Zaretskii <[email-masked]>
Date: Sun, 17 Jul 2022 13:08:16 +0300

> From: Po Lu <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Sun, 17 Jul 2022 16:41:21 +0800
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> None in particular: we store the clipboard data locally, and other
> >> programs request different selection "targets" from Emacs depending on
> >> the coding system they want it in.
> >
> > So the memory growth in the OP's scenario is due to something we do
> > locally?  Where's the code which "stores the clipboard data locally"?
> 
> xselect.c.  Look at the code which changes terminal->Vselection_alist in
> x_own_selection.

So the growing memory can only be explained by the consing of
selection_value onto terminal->Vselection_alist, where selection_value
is the text being copied by M-w?

> > Or maybe some external program does request the clipboard data on OP's
> > machine?  Is there a way to know when that happens, and specifically
> > to know which data-type is being requested?
> 
> The best way is to build xselect.c with TRACE_SELECTION defined to 1 in
> that file.  Otherwise, tracing each of the functions in
> selection-converter-alist should work too, but will not catch requests
> for types Emacs does not know how to handle.

Can any of the potential requests in this situation allocate lots of
memory?

(I'm at the end of my wits here, and very close to declare this bug as
not reproducible, so any ideas for debugging it further are welcome.)