浏览代码

Fixed infinite recursion

Krzysztof Krysiński 3 周之前
父节点
当前提交
0ffe0b857b
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      src/PixiEditor/Models/Controllers/ClipboardController.cs

+ 6 - 4
src/PixiEditor/Models/Controllers/ClipboardController.cs

@@ -651,7 +651,7 @@ internal static class ClipboardController
                         }
                         }
                     }
                     }
                 }
                 }
-                
+
                 if (files is byte[] bytes)
                 if (files is byte[] bytes)
                 {
                 {
                     string utf8String = Encoding.UTF8.GetString(bytes);
                     string utf8String = Encoding.UTF8.GetString(bytes);
@@ -786,17 +786,19 @@ internal static class ClipboardController
     public static async Task<Guid[]> GetIds(string format)
     public static async Task<Guid[]> GetIds(string format)
     {
     {
         var data = await TryGetImportObjects();
         var data = await TryGetImportObjects();
-        return await GetIds(format);
+        return await GetIds(data, format);
     }
     }
 
 
 
 
-    private static Guid[] GetIds(IEnumerable<IDataObject?> data, string format)
+    private static async Task<Guid[]> GetIds(IEnumerable<IImportObject?> data, string format)
     {
     {
         foreach (var dataObject in data)
         foreach (var dataObject in data)
         {
         {
             if (dataObject.Contains(format))
             if (dataObject.Contains(format))
             {
             {
-                byte[] nodeIds = (byte[])dataObject.Get(format);
+                byte[] nodeIds = await dataObject.GetDataAsync(format) as byte[];
+                if (nodeIds == null || nodeIds.Length == 0)
+                    return [];
                 string nodeIdsString = System.Text.Encoding.UTF8.GetString(nodeIds);
                 string nodeIdsString = System.Text.Encoding.UTF8.GetString(nodeIds);
                 return nodeIdsString.Split(';').Select(Guid.Parse).ToArray();
                 return nodeIdsString.Split(';').Select(Guid.Parse).ToArray();
             }
             }