[glibmm] Glib::ObjectBase: Don't use std::auto_ptr



commit 0b8237dd0b77a1e2d031256bacd97e13193039bb
Author: Kjell Ahlstedt <kjell ahlstedt bredband net>
Date:   Sun May 3 09:58:37 2015 +0200

    Glib::ObjectBase: Don't use std::auto_ptr
    
    * glib/glibmm/objectbase.[h|cc]: Use a plain pointer instead of std::auto_ptr.
    auto_ptr is deprecated in C++11, and can cause compilation warnings.
    Bug #748630.

 glib/glibmm/objectbase.cc |    5 +----
 glib/glibmm/objectbase.h  |    6 +++---
 2 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/glib/glibmm/objectbase.cc b/glib/glibmm/objectbase.cc
index 140816a..c7add7f 100644
--- a/glib/glibmm/objectbase.cc
+++ b/glib/glibmm/objectbase.cc
@@ -1,6 +1,3 @@
-// -*- c++ -*-
-/* $Id$ */
-
 /* Copyright 2002 The gtkmm Development Team
  *
  * This library is free software; you can redistribute it and/or
@@ -46,7 +43,7 @@ namespace Glib
 
 // static data members
 ObjectBase::extra_object_base_data_type ObjectBase::extra_object_base_data;
-std::auto_ptr<Threads::Mutex> ObjectBase::extra_object_base_data_mutex(new Threads::Mutex());
+Threads::Mutex* ObjectBase::extra_object_base_data_mutex = new Threads::Mutex();
 
 ObjectBase::ObjectBase()
 :
diff --git a/glib/glibmm/objectbase.h b/glib/glibmm/objectbase.h
index a3afd83..fe501df 100644
--- a/glib/glibmm/objectbase.h
+++ b/glib/glibmm/objectbase.h
@@ -29,7 +29,7 @@
 #include <sigc++/trackable.h>
 #include <typeinfo>
 #include <map> // Needed until the next ABI break.
-#include <memory> // auto_ptr, needed until the next ABI break.
+#include <memory> // Not used by ObjectBase any more, but user code may rely on it being here.
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 extern "C" { typedef struct _GObject GObject; }
@@ -209,10 +209,10 @@ typedef std::map<const ObjectBase*, ExtraObjectBaseData> extra_object_base_data_
 static extra_object_base_data_type extra_object_base_data;
 // ObjectBase instances may be used in different threads.
 // Accesses to extra_object_base_data must be thread-safe.
-// auto_ptr, because we don't want to include glibmm/threads.h in objectbase.h.
+// Threads::Mutex*, because we don't want to include glibmm/threads.h in objectbase.h.
 // threads.h must be the first included file that includes glib.h. That could cause
 // problems in files that directly or indirectly include objectbase.h.
-static std::auto_ptr<Threads::Mutex> extra_object_base_data_mutex;
+static Threads::Mutex* extra_object_base_data_mutex;
 
 public: //  is_derived_() must be public, so that overridden vfuncs and signal handlers can call it via 
ObjectBase.
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]