From 37bcbcad414774a4a390f15e8c1f6ffbf17699a3 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 12 Mar 2017 02:36:33 +0100 Subject: [PATCH] Optimize Session::set_dirty() --- libs/ardour/session_state.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 0c2fa42073..1b93e41c3c 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -3534,19 +3534,18 @@ Session::cleanup_trash_sources (CleanupReport& rep) void Session::set_dirty () { - /* never mark session dirty during loading */ + /* return early if there's nothing to do */ + if (dirty ()) { + return; + } + /* never mark session dirty during loading */ if (_state_of_the_state & Loading) { return; } - bool was_dirty = dirty(); - _state_of_the_state = StateOfTheState (_state_of_the_state | Dirty); - - if (!was_dirty) { - DirtyChanged(); /* EMIT SIGNAL */ - } + DirtyChanged(); /* EMIT SIGNAL */ } void