From: Eunki, Hong Date: Fri, 18 Nov 2022 10:26:17 +0000 (+0900) Subject: [Tizen] Remove SceneView RenderTask when destroied X-Git-Tag: accepted/tizen/7.0/unified/20221128.015442~5^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6fa874b3ee5fc3da1a1f95e296a033ccefe3406f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [Tizen] Remove SceneView RenderTask when destroied RenderTask created when it Initialized. But we don't remove RenderTask whereever. This patch make we sure remove task, so resolve memory leak Change-Id: I19f31d9edcaa417e7412610889de4b7c0a80feac Signed-off-by: Eunki, Hong --- diff --git a/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp b/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp index 52fee9c487..9c1e373ebd 100644 --- a/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp +++ b/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp @@ -75,6 +75,16 @@ SceneView::~SceneView() // Removes the callback from the callback manager in case the control is destroyed before the callback is executed. Adaptor::Get().RemoveIdle(mIblLoadedCallback); } + + if(Stage::IsInstalled()) + { + if(mRenderTask) + { + RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); + taskList.RemoveTask(mRenderTask); + mRenderTask.Reset(); + } + } } Dali::Scene3D::SceneView SceneView::New() @@ -173,7 +183,7 @@ void SceneView::SelectCamera(const std::string& name) UpdateCamera(GetCamera(name)); } -void SceneView::RegisterSceneItem(Scene3D::Internal::ImageBasedLightObserver *item) +void SceneView::RegisterSceneItem(Scene3D::Internal::ImageBasedLightObserver* item) { if(item) { @@ -182,7 +192,7 @@ void SceneView::RegisterSceneItem(Scene3D::Internal::ImageBasedLightObserver *it } } -void SceneView::UnregisterSceneItem(Scene3D::Internal::ImageBasedLightObserver *item) +void SceneView::UnregisterSceneItem(Scene3D::Internal::ImageBasedLightObserver* item) { if(item) {