diff options
author | nick_m <mainsbridge@gmail.com> | 2015-11-02 02:12:54 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-11-02 02:12:54 +1100 |
commit | 7ade596c92b00eae871e8f2f5b5d6e0d1ebd93d7 (patch) | |
tree | 447de9dc0885f72674ce6b56145791fa6820310a /libs/ardour/automation_list.cc | |
parent | 2d47196f4305c28fe9c9116b0b890f1c48b99508 (diff) |
Clean up _before XMLNode in AutomationList if no automation write occurred.
Diffstat (limited to 'libs/ardour/automation_list.cc')
-rw-r--r-- | libs/ardour/automation_list.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/ardour/automation_list.cc b/libs/ardour/automation_list.cc index afff85c1f8..9d8bfffc93 100644 --- a/libs/ardour/automation_list.cc +++ b/libs/ardour/automation_list.cc @@ -191,9 +191,6 @@ AutomationList::set_automation_state (AutoState s) { if (s != _state) { _state = s; - if (s == Write) { - _before = &get_state (); - } automation_state_changed (s); /* EMIT SIGNAL */ } } @@ -220,6 +217,7 @@ void AutomationList::write_pass_finished (double when, double thinning_factor) { ControlList::write_pass_finished (when, thinning_factor); + /* automation control has deleted this or it is now owned by the session undo stack */ _before = 0; } @@ -256,6 +254,16 @@ AutomationList::stop_touch (bool mark, double) } } +/* _before may be owned by the undo stack, + * so we have to be careful about doing this. +*/ +void +AutomationList::clear_history () +{ + delete _before; + _before = 0; +} + void AutomationList::thaw () { |