[DEBUG] correct leak when asign value on a sharedPtr
This commit is contained in:
parent
7b1d20dd43
commit
082c66329e
@ -104,6 +104,7 @@ ememory::SharedPtr<EMEMORY_TYPE>::SharedPtr(const ememory::SharedPtr<EMEMORY_TYP
|
||||
|
||||
template<typename EMEMORY_TYPE>
|
||||
ememory::SharedPtr<EMEMORY_TYPE>& ememory::SharedPtr<EMEMORY_TYPE>::operator= (const ememory::SharedPtr<EMEMORY_TYPE>& _obj) {
|
||||
reset();
|
||||
m_element = _obj.m_element;
|
||||
m_counter = _obj.m_counter;
|
||||
m_deleter = _obj.m_deleter;
|
||||
@ -164,6 +165,7 @@ template<class EMEMORY_TYPE2,
|
||||
typename std::enable_if< std::is_base_of<EMEMORY_TYPE, EMEMORY_TYPE2>::value
|
||||
, int>::type>
|
||||
ememory::SharedPtr<EMEMORY_TYPE>& ememory::SharedPtr<EMEMORY_TYPE>::operator= (const SharedPtr<EMEMORY_TYPE2>& _obj) {
|
||||
reset();
|
||||
m_element = const_cast<EMEMORY_TYPE2*>(_obj.get());
|
||||
m_counter = const_cast<ememory::Counter*>(_obj.getCounter());
|
||||
m_deleter = createDeleter();
|
||||
@ -379,6 +381,7 @@ namespace ememory {
|
||||
}
|
||||
template<class EMEMORY_TYPE2>
|
||||
SharedPtr& operator= (const SharedPtr<EMEMORY_TYPE2>& _obj) {
|
||||
reset();
|
||||
m_element = (void*)_obj.get();
|
||||
m_counter = _obj.getCounter();
|
||||
if ( m_element == nullptr
|
||||
|
@ -58,6 +58,7 @@ ememory::WeakPtr<EMEMORY_TYPE>::WeakPtr(const ememory::WeakPtr<EMEMORY_TYPE>& _o
|
||||
|
||||
template<typename EMEMORY_TYPE>
|
||||
ememory::WeakPtr<EMEMORY_TYPE>& ememory::WeakPtr<EMEMORY_TYPE>::operator= (const ememory::WeakPtr<EMEMORY_TYPE>& _obj) {
|
||||
reset();
|
||||
m_element = _obj.m_element;
|
||||
m_counter = _obj.m_counter;
|
||||
if ( m_element == nullptr
|
||||
@ -106,6 +107,7 @@ ememory::WeakPtr<EMEMORY_TYPE>::WeakPtr(const ememory::SharedPtr<EMEMORY_TYPE>&
|
||||
|
||||
template<typename EMEMORY_TYPE>
|
||||
ememory::WeakPtr<EMEMORY_TYPE>& ememory::WeakPtr<EMEMORY_TYPE>::operator= (const ememory::SharedPtr<EMEMORY_TYPE>& _obj) {
|
||||
reset();
|
||||
m_element = _obj.m_element;
|
||||
m_counter = _obj.m_counter;
|
||||
if ( m_element == nullptr
|
||||
@ -149,6 +151,7 @@ template<class EMEMORY_TYPE2,
|
||||
&& !std::is_void<EMEMORY_TYPE2>::value
|
||||
, int>::type>
|
||||
ememory::WeakPtr<EMEMORY_TYPE>& ememory::WeakPtr<EMEMORY_TYPE>::operator= (const ememory::SharedPtr<EMEMORY_TYPE2>& _obj) {
|
||||
reset();
|
||||
m_element = (void*)_obj.get();
|
||||
m_counter = _obj.getCounter();
|
||||
if ( m_element == nullptr
|
||||
@ -188,6 +191,7 @@ template<class EMEMORY_TYPE2,
|
||||
typename std::enable_if< std::is_base_of<EMEMORY_TYPE, EMEMORY_TYPE2>::value
|
||||
, int>::type>
|
||||
WeakPtr& operator= (const WeakPtr<EMEMORY_TYPE2>& _obj) {
|
||||
reset();
|
||||
m_element = _obj.m_element;
|
||||
m_counter = _obj.getCounter();
|
||||
if ( m_element == nullptr
|
||||
|
Loading…
x
Reference in New Issue
Block a user