Browse Source

Fix the Static Shared Image Cache to comply with the new WarnThatFinalizerIsReached check

Marcin Ziąbek 9 months ago
parent
commit
f48ade81d6

+ 2 - 2
Source/QuestPDF/Infrastructure/Image.cs

@@ -84,7 +84,7 @@ namespace QuestPDF.Infrastructure
         public static Image FromBinaryData(byte[] imageBytes)
         {
             using var imageData = SkData.FromBinary(imageBytes);
-            return StaticImageCache.DecodeImage(imageData);
+            return StaticImageCache.DecodeImage(imageData, isShared: false);
         }
 
         /// <summary>
@@ -105,7 +105,7 @@ namespace QuestPDF.Infrastructure
         public static Image FromStream(Stream stream)
         {
             using var imageData = SkData.FromStream(stream);
-            return StaticImageCache.DecodeImage(imageData);
+            return StaticImageCache.DecodeImage(imageData, isShared: false);
         }
 
         #endregion

+ 7 - 6
Source/QuestPDF/Infrastructure/StaticImageCache.cs

@@ -66,17 +66,18 @@ static class StaticImageCache
     private static Image LoadImage(string filePath, bool isShared)
     {
         using var imageData = SkData.FromFile(filePath);
-        var image = DecodeImage(imageData);
-        image.IsShared = isShared;
-        return image;
+        return DecodeImage(imageData, isShared);
     }
     
-    public static Image DecodeImage(SkData imageData)
+    public static Image DecodeImage(SkData imageData, bool isShared)
     {
         try
         {
-            var image = SkImage.FromData(imageData);
-            return new Image(image);
+            var skImage = SkImage.FromData(imageData);
+            var image = new Image(skImage);
+            image.IsShared = isShared;
+            
+            return image;
         }
         catch
         {