ardour/libs/temporal
Paul Davis 369fc2c15c temporal: fix a major thinko when removing/replacing map points
Despite comments already in the code, the logic used to remove a
{Tempo,Meter,BarTime} point from the _points list was incorrect. While it is
true that we can use a duple of (type,time) to find a given point,
::remove_point() was not doing that and instead assumed just the time value
could be used.

This meant that if you placed a tempo and meter at the same point in time, then
changed one of them, ::remove_point() could remove the wrong point from the
_points list.

In #10063 this manifests as the wrong grid being drawn after a tempo point
edit.

This commit alters the ::core_remove_xxx() methods to return a pointer to the
actual Point object that was removed from {_tempos,_meters,_bartimes} and then
we pass that to ::remove_point() for lookup and removal by address.

It also "fixes" a couple of instances of ::core_remove_xxx() without any
removal from the _points list (since ::core_remove_tempo() and
::core_remove_meter() do not do this; ::core_remove_bartime() does,
however). It is not immediately obvious what bad behavior would arise from the
existing code in these cases, but it seems clearly incorrect that the _points
list would contain points no longer present in _tempos or _meters.
2025-12-27 12:14:49 -07:00
..
MSVCtemporal
temporal temporal: fix a major thinko when removing/replacing map points 2025-12-27 12:14:49 -07:00
test temporal: add & use a couple of TempMap methods for unit testing 2025-12-27 12:14:49 -07:00
bbt_time.cc temporal: BBT_Time cannot have any round_to_*() or round_up_to_*() methods 2025-08-19 10:53:06 -06:00
beats.cc temporal: BBT_Time cannot have any round_to_*() or round_up_to_*() methods 2025-08-19 10:53:06 -06:00
debug.cc moved scoped tempo map from GUI to libtemporal 2025-08-11 15:41:34 -06:00
domain.cc add get/set state methods to TimeDomainProvider 2023-08-16 16:33:17 -06:00
enums.cc temporal: reset global superclock rate when creating a new session 2023-09-20 12:30:53 -06:00
range.cc temporal: operator<< for Range and RangeList 2023-03-24 14:19:16 -06:00
superclock.cc add comment on why _superclock_ticks_per_second is initializedto zero 2025-08-06 15:06:14 -06:00
tempo.cc temporal: fix a major thinko when removing/replacing map points 2025-12-27 12:14:49 -07:00
test.cc
test2.cc
time.cc
timeline.cc Fix for timepos_t::earlier() - superclock_t vs.samplepos_t confusion 2025-06-17 14:03:43 -06:00
wscript wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00