Selaa lähdekoodia

Fixed infinite recursion

Krzysztof Krysiński 3 viikkoa sitten
vanhempi
commit
0ffe0b857b
1 muutettua tiedostoa jossa 6 lisäystä ja 4 poistoa
  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)
                 {
                     string utf8String = Encoding.UTF8.GetString(bytes);
@@ -786,17 +786,19 @@ internal static class ClipboardController
     public static async Task<Guid[]> GetIds(string format)
     {
         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)
         {
             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);
                 return nodeIdsString.Split(';').Select(Guid.Parse).ToArray();
             }