From 8778ac941d3e9f1b5c66ca6c92ca68e5530ce07d Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Fri, 13 Oct 2023 13:40:56 +0900 Subject: [PATCH] [NUI] Resolve registry issue for CanvasView Gradient Since we always try to register to Registry for Gradient case, there can make some error for Shape use case. Signed-off-by: Eunki, Hong --- .../public/BaseComponents/VectorGraphics/Shape.cs | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Tizen.NUI/src/public/BaseComponents/VectorGraphics/Shape.cs b/src/Tizen.NUI/src/public/BaseComponents/VectorGraphics/Shape.cs index 903563f..56f9941 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/VectorGraphics/Shape.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/VectorGraphics/Shape.cs @@ -20,6 +20,7 @@ using System.ComponentModel; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; namespace Tizen.NUI.BaseComponents.VectorGraphics { @@ -73,7 +74,18 @@ namespace Tizen.NUI.BaseComponents.VectorGraphics get { global::System.IntPtr cPtr = Interop.Shape.GetFillGradient(BaseHandle.getCPtr(this)); - Gradient ret = new Gradient(cPtr, true); + + Gradient ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Gradient; + if (ret != null) + { + HandleRef CPtr = new HandleRef(this, cPtr); + Interop.BaseHandle.DeleteBaseHandle(CPtr); + CPtr = new HandleRef(null, global::System.IntPtr.Zero); + } + else + { + ret = new Gradient(cPtr, true); + } return ret; } set @@ -149,7 +161,18 @@ namespace Tizen.NUI.BaseComponents.VectorGraphics get { global::System.IntPtr cPtr = Interop.Shape.GetStrokeGradient(BaseHandle.getCPtr(this)); - Gradient ret = new Gradient(cPtr, true); + + Gradient ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Gradient; + if (ret != null) + { + HandleRef CPtr = new HandleRef(this, cPtr); + Interop.BaseHandle.DeleteBaseHandle(CPtr); + CPtr = new HandleRef(null, global::System.IntPtr.Zero); + } + else + { + ret = new Gradient(cPtr, true); + } return ret; } set -- 2.7.4