Revision: 15230
          http://sourceforge.net/p/skim-app/code/15230
Author:   hofman
Date:     2025-05-18 21:10:49 +0000 (Sun, 18 May 2025)
Log Message:
-----------
compare whether block itself is registered for image generation, otherwise 
ignore

Modified Paths:
--------------
    trunk/SKPresentationView.m

Modified: trunk/SKPresentationView.m
===================================================================
--- trunk/SKPresentationView.m  2025-05-18 16:19:53 UTC (rev 15229)
+++ trunk/SKPresentationView.m  2025-05-18 21:10:49 UTC (rev 15230)
@@ -481,12 +481,8 @@
     return nil;
 }
 
-static inline BOOL imageOrBlockIsBlock(id imageOrBlock) {
-    return imageOrBlock && [imageOrBlock isKindOfClass:[NSImage class]] == NO;
-}
-
 static inline void cancelIfBlock(id imageOrBlock) {
-    if (imageOrBlockIsBlock(imageOrBlock))
+    if (imageOrBlock && [imageOrBlock isKindOfClass:[NSImage class]] == NO)
         dispatch_block_cancel((dispatch_block_t)imageOrBlock);
 }
 
@@ -535,13 +531,14 @@
     PDFPage *thePage = [[page document] pageAtIndex:pageIndex];
     BOOL autoScales = [self autoScales];
     
+    __block void *myBlock = NULL;
     dispatch_block_t block = dispatch_block_create(0, ^{
-        
+
         NSImage *image = imageByDrawingPageToBitmapImageRep(imageRep, thePage, 
autoScales);
         
         dispatch_async(dispatch_get_main_queue(), ^{
             
-            if (predrawnImages && imageOrBlockIsBlock((__bridge 
id)NSMapGet(predrawnImages, (void *)pageIndex))) {
+            if (predrawnImages && myBlock == NSMapGet(predrawnImages, (void 
*)pageIndex)) {
                 NSMapRemove(predrawnImages, (void *)pageIndex);
                 if (image) {
                     NSUInteger currentIndex = [page pageIndex];
@@ -557,7 +554,8 @@
     });
     
     // set this block so we can cancel it
-    NSMapInsert(predrawnImages, (void *)pageIndex, (__bridge void *)block);
+    myBlock = (__bridge void *)block;
+    NSMapInsert(predrawnImages, (void *)pageIndex, myBlock);
     
     dispatch_async(predrawingQueue, block);
     

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to