diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-07 02:34:09 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-07 02:35:00 +0200 |
commit | deba170d6c3a791633def422a59cf0f80d63be13 (patch) | |
tree | f4f25a435bf6929251a729c558ffe1d2188ac5fc /libs/evoral | |
parent | b732aa2ca18465f51839ba93270280c9f3609bd1 (diff) |
Consistent ControlList freezing -- fixes #7419
AudioRegion::set_fade_in() freezes the original ControlList, then
assigns a new one and thaws that.
Frozen state needs to be retained during assignment.
Related: The overloaded assignment operator in AutomationList
performed duplicate signal emission and didn't freeze the list.
Diffstat (limited to 'libs/evoral')
-rw-r--r-- | libs/evoral/src/ControlList.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp index a05c1f9308..a0660ee000 100644 --- a/libs/evoral/src/ControlList.cpp +++ b/libs/evoral/src/ControlList.cpp @@ -152,7 +152,8 @@ ControlList& ControlList::operator= (const ControlList& other) { if (this != &other) { - _frozen = 0; + /* list should be frozen before assignment */ + assert (_frozen > 0); _changed_when_thawed = false; _sort_pending = false; @@ -166,7 +167,6 @@ ControlList::operator= (const ControlList& other) _desc = other._desc; _interpolation = other._interpolation; - // XXX copy_events() emits Dirty, but this is just assignment copy/construction copy_events (other); } |