[DEV] stabilize shared object interface
This commit is contained in:
parent
23eb78c7f9
commit
b5b5785d04
@ -13,7 +13,7 @@
|
|||||||
#include <ewol/object/MultiCast.h>
|
#include <ewol/object/MultiCast.h>
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "ewol::object::Shared<ewol::Object>"
|
#define __class__ "Object"
|
||||||
|
|
||||||
|
|
||||||
const char* const ewol::Object::configName = "name";
|
const char* const ewol::Object::configName = "name";
|
||||||
|
@ -92,9 +92,6 @@ namespace ewol {
|
|||||||
return m_pointer;
|
return m_pointer;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename T> Owner<T> makeOwner(T* _pointer) {
|
|
||||||
return Owner<T>(_pointer);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
// section to compare Owner pointer of an object with an other
|
// section to compare Owner pointer of an object with an other
|
||||||
|
|
||||||
|
@ -103,8 +103,15 @@ namespace ewol {
|
|||||||
return m_pointer;
|
return m_pointer;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// after calling this function, you might never call a delete on this pointer. (if you want to be able to use a delete, simply Shared<>(pointer)
|
||||||
template<typename T> Shared<T> makeShared(T* _pointer) {
|
template<typename T> Shared<T> makeShared(T* _pointer) {
|
||||||
return Shared<T>(_pointer);
|
if (_pointer == nullptr) {
|
||||||
|
return Shared<T>();
|
||||||
|
}
|
||||||
|
Shared<T> tmp(_pointer);
|
||||||
|
// remove one element to permit to remove at the last instance
|
||||||
|
_pointer->objRefCountDecrement();
|
||||||
|
return tmp;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// section to compare shared pointer of an object with an other
|
// section to compare shared pointer of an object with an other
|
||||||
|
@ -264,7 +264,7 @@ ewol::object::Shared<ewol::Widget> ewol::widget::Manager::create(const std::stri
|
|||||||
if (m_creatorList.exist(nameLower) == true) {
|
if (m_creatorList.exist(nameLower) == true) {
|
||||||
ewol::widget::Manager::creator_tf pointerFunction = m_creatorList[nameLower];
|
ewol::widget::Manager::creator_tf pointerFunction = m_creatorList[nameLower];
|
||||||
if (pointerFunction != nullptr) {
|
if (pointerFunction != nullptr) {
|
||||||
return pointerFunction();
|
return ewol::object::makeShared<ewol::Widget>(pointerFunction());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EWOL_WARNING("try to create an UnExistant widget : " << nameLower);
|
EWOL_WARNING("try to create an UnExistant widget : " << nameLower);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user