[Tizen] Fix the callback functions are NULL for GLViewRender thread. 26/319926/1
authorWonsik Jung <sidein@samsung.com>
Thu, 20 Feb 2025 00:43:23 +0000 (09:43 +0900)
committerWonsik Jung <sidein@samsung.com>
Thu, 20 Feb 2025 00:43:23 +0000 (09:43 +0900)
To fix the crash issue when the callback functions are null.

Change-Id: I315b7f1fcb7a05f2cf6456b83b9210753e49bd85

dali-toolkit/internal/controls/gl-view/gl-view-render-thread.cpp

index 3e84cfd27063ff5bb7748d3740d40793ee42c7ae..e05cc96c14b187d20224e52d5a07e0ff1b4551ac 100644 (file)
@@ -76,15 +76,26 @@ void GlViewRenderThread::RegisterGlCallbacks(CallbackBase* initCallback, Callbac
 {
   if(!mGlInitCallback && !mGlRenderFrameCallback && !mGlTerminateCallback)
   {
-    mGlInitCallback        = std::unique_ptr<CallbackBase>(initCallback);
-    mGlRenderFrameCallback = std::unique_ptr<CallbackBase>(renderFrameCallback);
-    mGlTerminateCallback   = std::unique_ptr<CallbackBase>(terminateCallback);
+    if(initCallback)
+    {
+      mGlInitCallback        = std::unique_ptr<CallbackBase>(initCallback);
+    }
+
+    if(renderFrameCallback)
+    {
+      mGlRenderFrameCallback = std::unique_ptr<CallbackBase>(renderFrameCallback);
+    }
+
+    if(terminateCallback)
+    {
+      mGlTerminateCallback   = std::unique_ptr<CallbackBase>(terminateCallback);
+    }
   }
 }
 
 void GlViewRenderThread::SetResizeCallback(CallbackBase* resizeCallback)
 {
-  if(!mResizeCallback)
+  if(!mResizeCallback && resizeCallback)
   {
     mResizeCallback = std::unique_ptr<CallbackBase>(resizeCallback);
   }