Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All available bugfixes #19

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open

All available bugfixes #19

wants to merge 26 commits into from

Conversation

MRWITEK
Copy link

@MRWITEK MRWITEK commented Jun 18, 2022

All bugfixes available in pull requests and forks (same as described here) merged together properly.

RaphaelRochet and others added 26 commits January 17, 2014 18:34
Depending on which C++ standard library headers have been included there
might an abs(float) function already declared in the global namespace,
so the definition in this file conflicts with it. This cause a build
failure with GCC 7, which conforms more closely to the C++ standard with
respect to overloads of abs.

Including <cmath> and adding a using-declaration for std::abs ensures
that the standard std::abs(float) function is available. This solution
should be portable to all compilers.
… devices, and faking the last extra button of a disabled device as the default button. The basic idea is to allow using button 1 for touch screens but still allow disabling mouse gestures for button 1, but still allow default gestures with another mouse button.
The template member functions Stroke::save and Stroke::load get called
via the serialize() function generated by boost's macro
BOOST_SERIALIZATION_SPLIT_MEMBER() in gesture.h.  Since the definitions
of save()/load() are only available in gesture.cc, the compiler may
produce two versions of Stroke::serialize() -- one with save()/load()
inlined in gesture.o and one with calls to save()/load() in all other
referencing translation units. Since the compiler inlined Stroke::save()
and Stroke::load(), it will not export them in gesture.o (which is
legitimate, since the code only requests an export of
Stroke::serialize). As a result, some orders of object files can fail to
link, when the linker picks the version of Stroke::serialize() that
would call save()/load() (which are not available separately) instead of
the version with these functions inlined.

Avoid relying on this compiler- and optimization-level dependent
behavior by moving the definition of template member functions
Stroke::save() and Stroke::load() into gesture.h. As a side-effect, that
change unifies code style, since all other classes have their ::save()
and ::load() definitions in header files, too.

These link failures surfaced when building on s390x with -march=zEC12 or
later, and can be reproduced on x86_64 with gcc parameters
    --param max-inline-insns-auto=80 --param inline-min-speedup=2

Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
Merge commit '118380dfb59286401cafbc9604457f457daeac85';
commit '5ac086969033256864e3803f8b8e01ad914c9d30';
commit '710d246eccf867b3e610b0720ca6883dfc14a7f7';
commit 'ffe356c2c7d4d91bf384ed6db5ad8b971293a082';
commit '0e60f1630fc6267fcaf287afef3f8c5eaafd3dd9';
commit '9e2c32390c5c253aade3bb703e51841748d2c37e';
commit '5f6885c59d1366e28317c9553c2e406fbd6569f9';
commit '686b7778767f1f94cf9f6d5c2acd401d76bb3d4a';
commit 'd9b8363b5854456671d21610a96cc1d6f9b25eaf';
commit '1c0a0609489035805fedfe88fe97542d2aa37bf5'
(cherry picked from commit 1c6ceed)
…imple solution for Deepin.

(cherry picked from commit 31023e7)
(cherry picked from commit 0fa53d8)
@xianghongai
Copy link

easystroke++?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.