From 06c25b86d25523b53bbd39668eccb440abc0d611 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Mon, 25 Jun 2018 23:27:06 +0200 Subject: [PATCH] [DEBUG] midding copy contructor of void --- ememory/details/SharedPtr.hxx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/ememory/details/SharedPtr.hxx b/ememory/details/SharedPtr.hxx index 8cd7555..6417e7a 100644 --- a/ememory/details/SharedPtr.hxx +++ b/ememory/details/SharedPtr.hxx @@ -379,6 +379,20 @@ namespace ememory { } m_counter->incrementShared(); } + SharedPtr(const SharedPtr& _obj) { + m_element = _obj.m_element; + m_counter = _obj.m_counter; + if ( m_element == null + || m_counter == null) { + m_element = null; + m_counter = null; + return; + } + if (m_counter == null) { + return; + } + m_counter->incrementShared(); + } template SharedPtr& operator= (const SharedPtr& _obj) { reset(); @@ -396,6 +410,22 @@ namespace ememory { m_counter->incrementShared(); return *this; } + SharedPtr& operator= (const SharedPtr& _obj) { + reset(); + m_element = _obj.m_element; + m_counter = _obj.m_counter; + if ( m_element == null + || m_counter == null) { + m_element = null; + m_counter = null; + return *this; + } + if (m_counter == null) { + return *this; + } + m_counter->incrementShared(); + return *this; + } public: void reset() { if(m_counter == null) {