Age | Commit message (Collapse) | Author |
|
Tracking rarely deadlocked when saving mappings.
Investigating it further also shown how a wrong bundle was used for
Accela's splines.
|
|
|
|
Maybe global `-Wcomma' is too harsh.
There should be no functional changes whatsoever.
|
|
No functional changes.
- add `override' everywhere where missing
- almost pass clang's `-Wweak-vtables'
- avoid some float/double conversions
- remove unused private members
- make signedness conversions explicit
- put stuff in right namespaces to aid analysis
|
|
|
|
This is possibly related to a livelock where several threads do const
removal in their respective code paths.
Use the `mutable' specifier for the mutexes and spline's cached data.
Now using the `mutable' specifier, get rid of <optional> in
compat/mutex.
|
|
|
|
|
|
|
|
|
|
- fix floats not equal to themselves infinite loop; check if any
elements were removed instead
- do sort in-place to avoid potentially sorting twice
in `update_interp_data'
- simplify lerp loop
- define magic value
|
|
- don't copy-paste signal disconnection
- bundle and settings are never null after ctor
|
|
- replace warn_unused_result with [[nodiscard]]
- remove some redundant w_a_r
- replace std::decay with remove_cvref_t
- simplify compat/math.hpp
|
|
Rename traits' functions to be more explicit.
Most of the changes are pretty old and I can't read
them at this time, sorry.
Adjust usages.
Issue: #825
Reported-by: @DanielKinsman
|
|
|
|
|
|
|
|
No visible changes (hopefully).
|
|
|
|
Dragging toward adjacent point makes sure it's as close
as allowed.
Work against any remaining cases where points "merged".
|
|
use `cc_xx' rather than awkward synonyms.
|
|
|
|
|
|
- use `static constexpr inline' to avoid requiring
explicit declarations in object code
- use `const Foo* const' to maybe put into readonly
binary segment (at least for ELF DSOs)
- `constexpr' in function scope has storage, avoid
`static'
- don't use `constexpr' where there's no advantage,
like arrays
We'd like to avoid overhead of atomic initialization
for each function call. No idea how `static constexpr'
requiring storage in the standard plays with atomic
initialization requirement. Hearsay points that
`constexpr' without `static' in block scope behaves
more to our liking. It's all hazy though.
I'm not 100% sure if `static inline constexpr' has any
storage. Hopefully none, like a #define, and stuff
bigger than registers gets coalesced within the same
module, with small stuff being immediates.
|
|
Adjust usages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otherwise settings don't get cancelled
|
|
|
|
- mapping window clamps are now value<max_clamp> in
spline
- clamp won't mess up saved spline content
- clean up artifacts on spline widget
|
|
|
|
|
|
|
|
Fixes: #628
|
|
|
|
|
|
|
|
|
|
|
|
Generally nothing of importance, just readability.
- There was a particularly scary typo where:
const unsigned end = std::min(unsigned(value_count), unsigned(p2_x * mult_));
clamping to value_count doesn't make sense, given arbitrary p2_x.
- Try harder to avoid assigning s->points. Also the overlap
threshold constant was arbitrarily too high.
- Sort predicate is meant to use strict ordering,
not partial total order.
|
|
|
|
Update usages.
|
|
|
|
|