[DEV] remove owner interface to simplify

This commit is contained in:
Edouard DUPIN 2014-05-20 23:24:51 +02:00
parent 87c622ddc0
commit 5e861e002c
7 changed files with 14 additions and 12 deletions

View File

@ -71,12 +71,14 @@ void ewol::Object::operator delete[](void* _ptr, std::size_t _sz) {
}
void ewol::Object::autoDestroy() {
std::unique_lock<std::mutex> lock(m_lockRefCount);
if (m_isDestroyed == true) {
EWOL_WARNING("Request remove of a removed object");
return;
{
std::unique_lock<std::mutex> lock(m_lockRefCount);
if (m_isDestroyed == true) {
EWOL_WARNING("Request remove of a removed object");
return;
}
m_isDestroyed = true;
}
m_isDestroyed = true;
getObjectManager().autoRemove(this);
}

View File

@ -17,7 +17,7 @@ namespace ewol {
namespace resource {
class Manager {
private:
std::vector<ewol::object::Owner<ewol::Resource>> m_resourceList;
std::vector<ewol::object::Shared<ewol::Resource>> m_resourceList;
std::vector<ewol::object::Shared<ewol::Resource>> m_resourceListToUpdate;
bool m_contextHasBeenRemoved;
public:

View File

@ -21,7 +21,7 @@ namespace ewol {
*/
class Container : public ewol::Widget {
protected:
ewol::object::Owner<ewol::Widget> m_subWidget;
ewol::object::Shared<ewol::Widget> m_subWidget;
public:
/**
* @brief Constructor

View File

@ -22,7 +22,7 @@ namespace ewol {
*/
class Container2 : public ewol::Widget {
protected:
ewol::object::Owner<ewol::Widget> m_subWidget[2]; //!< 2 subwidget possible
ewol::object::Shared<ewol::Widget> m_subWidget[2]; //!< 2 subwidget possible
int32_t m_idWidgetDisplayed; //!< current widget displayed
public:
/**

View File

@ -21,7 +21,7 @@ namespace ewol {
*/
class ContainerN : public ewol::Widget {
protected:
std::vector<ewol::object::Owner<ewol::Widget>> m_subWidget;
std::vector<ewol::object::Shared<ewol::Widget>> m_subWidget;
public:
/**
* @brief Constructor

View File

@ -26,7 +26,7 @@ namespace ewol {
private:
class GirdProperties {
public:
ewol::object::Owner<ewol::Widget> widget;
ewol::object::Shared<ewol::Widget> widget;
int32_t row;
int32_t col;
};

View File

@ -56,8 +56,8 @@ namespace ewol {
m_hasDecoration = true;
}
private:
ewol::object::Owner<ewol::Widget> m_subWidget;
std::vector<ewol::object::Owner<ewol::Widget>> m_popUpWidgetList;
ewol::object::Shared<ewol::Widget> m_subWidget;
std::vector<ewol::object::Shared<ewol::Widget>> m_popUpWidgetList;
public:
void setSubWidget(ewol::object::Shared<ewol::Widget> _widget);
void popUpWidgetPush(ewol::object::Shared<ewol::Widget> _widget);