add realloc pool to MSVC project
[ardour.git] / libs / pbd / stateful.cc
index ac36a6912727f3b344f358803f13834fb4291192..3fb11a3a509359bf6878a0c63e9849c72b94e81f 100644 (file)
@@ -44,9 +44,7 @@ namespace PBD {
 int Stateful::current_state_version = 0;
 int Stateful::loading_state_version = 0;
 
-static void do_not_delete (void*) {}
-
-Glib::Threads::Private<bool> Stateful::regenerate_xml_or_string_ids (do_not_delete);
+Glib::Threads::Private<bool> Stateful::_regenerate_xml_or_string_ids;
 
 Stateful::Stateful ()
        : _extra_xml (0)
@@ -385,7 +383,7 @@ bool
 Stateful::set_id (const XMLNode& node)
 {
        const XMLProperty* prop;
-       bool* regen = regenerate_xml_or_string_ids.get();
+       bool* regen = _regenerate_xml_or_string_ids.get();
 
        if (regen && *regen) {
                reset_id ();
@@ -409,7 +407,7 @@ Stateful::reset_id ()
 void
 Stateful::set_id (const string& str)
 {
-       bool* regen = regenerate_xml_or_string_ids.get();
+       bool* regen = _regenerate_xml_or_string_ids.get();
 
        if (regen && *regen) {
                reset_id ();
@@ -418,10 +416,22 @@ Stateful::set_id (const string& str)
        }
 }
 
+bool
+Stateful::regenerate_xml_or_string_ids () const
+{
+       bool* regen = _regenerate_xml_or_string_ids.get();
+       if (regen && *regen) {
+               return true;
+       } else {
+               return false;
+       }
+}
+
 void
 Stateful::set_regenerate_xml_and_string_ids_in_this_thread (bool yn)
 {
-       regenerate_xml_or_string_ids.set (&yn);
+       bool* val = new bool (yn);
+       _regenerate_xml_or_string_ids.set (val);
 }
 
 } // namespace PBD