[DEV] stabilize shared object interface
This commit is contained in:
parent
23eb78c7f9
commit
b5b5785d04
@ -13,7 +13,7 @@
|
||||
#include <ewol/object/MultiCast.h>
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "ewol::object::Shared<ewol::Object>"
|
||||
#define __class__ "Object"
|
||||
|
||||
|
||||
const char* const ewol::Object::configName = "name";
|
||||
|
@ -92,9 +92,6 @@ namespace ewol {
|
||||
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
|
||||
|
||||
|
@ -103,8 +103,15 @@ namespace ewol {
|
||||
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) {
|
||||
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
|
||||
|
@ -264,7 +264,7 @@ ewol::object::Shared<ewol::Widget> ewol::widget::Manager::create(const std::stri
|
||||
if (m_creatorList.exist(nameLower) == true) {
|
||||
ewol::widget::Manager::creator_tf pointerFunction = m_creatorList[nameLower];
|
||||
if (pointerFunction != nullptr) {
|
||||
return pointerFunction();
|
||||
return ewol::object::makeShared<ewol::Widget>(pointerFunction());
|
||||
}
|
||||
}
|
||||
EWOL_WARNING("try to create an UnExistant widget : " << nameLower);
|
||||
|
Loading…
x
Reference in New Issue
Block a user