diff --git a/sources/ewol/object/Object.cpp b/sources/ewol/object/Object.cpp index 454af2ab..ac6b834f 100644 --- a/sources/ewol/object/Object.cpp +++ b/sources/ewol/object/Object.cpp @@ -71,12 +71,14 @@ void ewol::Object::operator delete[](void* _ptr, std::size_t _sz) { } void ewol::Object::autoDestroy() { - std::unique_lock lock(m_lockRefCount); - if (m_isDestroyed == true) { - EWOL_WARNING("Request remove of a removed object"); - return; + { + std::unique_lock 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); } diff --git a/sources/ewol/resource/Manager.h b/sources/ewol/resource/Manager.h index 34559ab3..7c3ee842 100644 --- a/sources/ewol/resource/Manager.h +++ b/sources/ewol/resource/Manager.h @@ -17,7 +17,7 @@ namespace ewol { namespace resource { class Manager { private: - std::vector> m_resourceList; + std::vector> m_resourceList; std::vector> m_resourceListToUpdate; bool m_contextHasBeenRemoved; public: diff --git a/sources/ewol/widget/Container.h b/sources/ewol/widget/Container.h index 351dd18d..fdaf8ca3 100644 --- a/sources/ewol/widget/Container.h +++ b/sources/ewol/widget/Container.h @@ -21,7 +21,7 @@ namespace ewol { */ class Container : public ewol::Widget { protected: - ewol::object::Owner m_subWidget; + ewol::object::Shared m_subWidget; public: /** * @brief Constructor diff --git a/sources/ewol/widget/Container2.h b/sources/ewol/widget/Container2.h index c7761fb4..fad3433c 100644 --- a/sources/ewol/widget/Container2.h +++ b/sources/ewol/widget/Container2.h @@ -22,7 +22,7 @@ namespace ewol { */ class Container2 : public ewol::Widget { protected: - ewol::object::Owner m_subWidget[2]; //!< 2 subwidget possible + ewol::object::Shared m_subWidget[2]; //!< 2 subwidget possible int32_t m_idWidgetDisplayed; //!< current widget displayed public: /** diff --git a/sources/ewol/widget/ContainerN.h b/sources/ewol/widget/ContainerN.h index c534b4f3..6acfaf1f 100644 --- a/sources/ewol/widget/ContainerN.h +++ b/sources/ewol/widget/ContainerN.h @@ -21,7 +21,7 @@ namespace ewol { */ class ContainerN : public ewol::Widget { protected: - std::vector> m_subWidget; + std::vector> m_subWidget; public: /** * @brief Constructor diff --git a/sources/ewol/widget/Gird.h b/sources/ewol/widget/Gird.h index f98c7956..0133b0f4 100644 --- a/sources/ewol/widget/Gird.h +++ b/sources/ewol/widget/Gird.h @@ -26,7 +26,7 @@ namespace ewol { private: class GirdProperties { public: - ewol::object::Owner widget; + ewol::object::Shared widget; int32_t row; int32_t col; }; diff --git a/sources/ewol/widget/Windows.h b/sources/ewol/widget/Windows.h index c3565740..ceb18cf4 100644 --- a/sources/ewol/widget/Windows.h +++ b/sources/ewol/widget/Windows.h @@ -56,8 +56,8 @@ namespace ewol { m_hasDecoration = true; } private: - ewol::object::Owner m_subWidget; - std::vector> m_popUpWidgetList; + ewol::object::Shared m_subWidget; + std::vector> m_popUpWidgetList; public: void setSubWidget(ewol::object::Shared _widget); void popUpWidgetPush(ewol::object::Shared _widget);