diff --git a/src/cpim/header/cpim-generic-header.cpp b/src/cpim/header/cpim-generic-header.cpp index 178063797..6c043c55d 100644 --- a/src/cpim/header/cpim-generic-header.cpp +++ b/src/cpim/header/cpim-generic-header.cpp @@ -32,8 +32,8 @@ using namespace LinphonePrivate; class Cpim::GenericHeaderPrivate : public HeaderPrivate { public: - GenericHeaderPrivate() : parameters(make_shared< list< pair > >()){ - } + GenericHeaderPrivate () : parameters(make_shared > >()) {} + string name; shared_ptr > > parameters; }; diff --git a/src/object/singleton.h b/src/object/singleton.h index 6acad3c6d..16e16d471 100644 --- a/src/object/singleton.h +++ b/src/object/singleton.h @@ -30,8 +30,10 @@ namespace LinphonePrivate { virtual ~Singleton () = default; static T *getInstance () { - if (!mInstance) + if (!mInstance) { mInstance = new T(); + static SingletonDeleter deleter; + } return mInstance; } @@ -39,6 +41,12 @@ namespace LinphonePrivate { explicit Singleton (ObjectPrivate &p) : Object(p) {} private: + struct SingletonDeleter { + ~SingletonDeleter () { + delete mInstance; + } + }; + static T *mInstance; L_DISABLE_COPY(Singleton);