Clear up confusion with overloads of _frozen and frozen()
meaning different things. git-svn-id: svn://localhost/ardour2/branches/3.0@11016 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
85b75a0ab1
commit
39f765614a
@ -1301,7 +1301,7 @@ Region::send_change (const PropertyChange& what_changed)
|
|||||||
|
|
||||||
Stateful::send_change (what_changed);
|
Stateful::send_change (what_changed);
|
||||||
|
|
||||||
if (!Stateful::frozen()) {
|
if (!Stateful::property_changes_suspended()) {
|
||||||
|
|
||||||
/* Try and send a shared_pointer unless this is part of the constructor.
|
/* Try and send a shared_pointer unless this is part of the constructor.
|
||||||
If so, do nothing.
|
If so, do nothing.
|
||||||
|
@ -90,9 +90,9 @@ class Stateful {
|
|||||||
|
|
||||||
virtual void suspend_property_changes ();
|
virtual void suspend_property_changes ();
|
||||||
virtual void resume_property_changes ();
|
virtual void resume_property_changes ();
|
||||||
|
|
||||||
virtual bool frozen() const { return _frozen; }
|
|
||||||
|
|
||||||
|
bool property_changes_suspended() const { return g_atomic_int_get (&_stateful_frozen) > 0; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void add_instant_xml (XMLNode&, const sys::path& directory_path);
|
void add_instant_xml (XMLNode&, const sys::path& directory_path);
|
||||||
@ -109,7 +109,6 @@ class Stateful {
|
|||||||
|
|
||||||
XMLNode *_extra_xml;
|
XMLNode *_extra_xml;
|
||||||
XMLNode *_instant_xml;
|
XMLNode *_instant_xml;
|
||||||
int32_t _frozen;
|
|
||||||
PBD::PropertyChange _pending_changed;
|
PBD::PropertyChange _pending_changed;
|
||||||
Glib::Mutex _lock;
|
Glib::Mutex _lock;
|
||||||
|
|
||||||
@ -121,10 +120,10 @@ class Stateful {
|
|||||||
within thaw() just before send_change() is called.
|
within thaw() just before send_change() is called.
|
||||||
*/
|
*/
|
||||||
virtual void mid_thaw (const PropertyChange&) { }
|
virtual void mid_thaw (const PropertyChange&) { }
|
||||||
bool property_changes_suspended() const { return g_atomic_int_get (&_frozen) > 0; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PBD::ID _id;
|
PBD::ID _id;
|
||||||
|
int32_t _stateful_frozen;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace PBD
|
} // namespace PBD
|
||||||
|
@ -39,8 +39,8 @@ int Stateful::current_state_version = 0;
|
|||||||
int Stateful::loading_state_version = 0;
|
int Stateful::loading_state_version = 0;
|
||||||
|
|
||||||
Stateful::Stateful ()
|
Stateful::Stateful ()
|
||||||
: _frozen (0)
|
: _properties (new OwnedPropertyList)
|
||||||
, _properties (new OwnedPropertyList)
|
, _stateful_frozen (0)
|
||||||
{
|
{
|
||||||
_extra_xml = 0;
|
_extra_xml = 0;
|
||||||
_instant_xml = 0;
|
_instant_xml = 0;
|
||||||
@ -275,7 +275,7 @@ Stateful::send_change (const PropertyChange& what_changed)
|
|||||||
|
|
||||||
{
|
{
|
||||||
Glib::Mutex::Lock lm (_lock);
|
Glib::Mutex::Lock lm (_lock);
|
||||||
if (_frozen) {
|
if (property_changes_suspended ()) {
|
||||||
_pending_changed.add (what_changed);
|
_pending_changed.add (what_changed);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -287,7 +287,7 @@ Stateful::send_change (const PropertyChange& what_changed)
|
|||||||
void
|
void
|
||||||
Stateful::suspend_property_changes ()
|
Stateful::suspend_property_changes ()
|
||||||
{
|
{
|
||||||
_frozen++;
|
g_atomic_int_add (&_stateful_frozen, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -298,7 +298,7 @@ Stateful::resume_property_changes ()
|
|||||||
{
|
{
|
||||||
Glib::Mutex::Lock lm (_lock);
|
Glib::Mutex::Lock lm (_lock);
|
||||||
|
|
||||||
if (_frozen && --_frozen > 0) {
|
if (property_changes_suspended() && g_atomic_int_dec_and_test (&_stateful_frozen) == FALSE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user