Fix the callback functions are NULL for GLViewRender thread. 23/319823/1
authorWonsik Jung <sidein@samsung.com>
Tue, 18 Feb 2025 11:16:16 +0000 (20:16 +0900)
committerWonsik Jung <sidein@samsung.com>
Tue, 18 Feb 2025 11:20:01 +0000 (20:20 +0900)
To fix the crash issue when the callback functions are null.

Change-Id: I1afab897b316cf4f4dbe18e05de67c42a0919f8c

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

index 391dd3427d6814eb899005910d1e90f6d178d8a0..6b652845b9871b7ab905994593ce01a10f9fb6ba 100644 (file)
@@ -77,15 +77,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);
   }