Make Evoral::Event ids unique always.
authornick_m <mainsbridge@gmail.com>
Sat, 23 May 2015 15:53:34 +0000 (01:53 +1000)
committernick_m <mainsbridge@gmail.com>
Sat, 23 May 2015 15:53:34 +0000 (01:53 +1000)
- probably fixes a lot of cases where note ids are assumed to be
  unique (they weren't for copies and some others).
- wrong branch, but it needs testing.

libs/evoral/src/Event.cpp

index da3166295117de3f3b475e4e2c262d8f42169117..45935ccf8d255998cfa191f811bc30aea1574052 100644 (file)
@@ -86,7 +86,7 @@ Event<Timestamp>::Event(const Event& copy, bool owns_buf)
        , _nominal_time(copy._nominal_time)
        , _size(copy._size)
        , _buf(copy._buf)
-       , _id(copy.id())
+       , _id (next_event_id ())
        , _owns_buf(owns_buf)
 {
        if (owns_buf) {
@@ -110,7 +110,7 @@ template<typename Timestamp>
 const Event<Timestamp>&
 Event<Timestamp>::operator=(const Event& copy)
 {
-       _id = copy.id(); // XXX is this right? do we want ID copy semantics?
+       _id = next_event_id ();
        _type = copy._type;
        _original_time = copy._original_time;
        _nominal_time = copy._nominal_time;