On Sun, Feb 23, 2020 at 08:41:12PM -0500, Scott Kostyshak wrote: > On Sun, Feb 23, 2020 at 10:40:32PM +0100, Enrico Forestieri wrote: > > On Sun, Feb 23, 2020 at 12:04:20PM -0500, Scott Kostyshak wrote: > > > On Sun, Feb 23, 2020 at 03:10:37PM +0100, Enrico Forestieri wrote: > > > > On Sun, Feb 23, 2020 at 08:22:55AM -0500, Scott Kostyshak wrote: > > > > > On Wed, Feb 19, 2020 at 08:07:46PM +0100, Enrico Forestieri wrote: > > > > > > On Wed, Feb 19, 2020 at 01:19:54PM -0500, Scott Kostyshak wrote: > > > > > > > > > > > > > > It seems I committed too soon. Sorry for not waiting. Both the > > > > > > > macro > > > > > > > approach and Enrico's proposal are cleaner than my approach. I was > > > > > > > planning to pursue the macro approach in a follow-up commit. > > > > > > > > > > > > Apparently, the macro approach was abandoned by the Qt folks. > > > > > > > > > > > > > Regarding > > > > > > > C++11, don't we already use range-based for loops? Or is the > > > > > > > question > > > > > > > about if we require *all* of C++11? > > > > > > > > > > > > The latter. As shown by Pavel in the other post gcc 4.7 is lacking > > > > > > something. As we use xcb_selection_notify_event_t only in one place, > > > > > > I think defining a macro is overkill. In order to avoid many calls > > > > > > to calloc() (I don't know how memory fragmentation is dealt with by > > > > > > modern compilers), we could anyway use that idea as follows: > > > > > > > > > > > > union { > > > > > > xcb_selection_notify_event_t event; > > > > > > char padding[32]; > > > > > > } padded_event; > > > > > > auto & nev = padded_event.event; > > > > > > > > > > Enrico, I propose that you commit. Thanks for the fix. > > > > > > > > According to the followups to the post by Pavel and commit 748bb5a0, > > > > I think that the C++11 alignas solution is preferred. Given that you > > > > can check its effectiveness, I think that it is better that you > > > > commit it. > > > > > > I tried to test but probably I'm missing something in the change that I > > > tested since I still get the following with Valgrind: > > > > Please, can you also try with the union approach above? > > I tested but still get the Valgrind error. I'm wondering if I > implemented the approach incorrectly. Attached is the patch.
No, you are doing it right. This seems to be a limitation of valgrind that, seemingly, does not take into account that nev is part of a large enough union. -- Enrico -- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel