Revision: 29063
          http://sourceforge.net/p/bibdesk/svn/29063
Author:   hofman
Date:     2025-02-24 18:09:27 +0000 (Mon, 24 Feb 2025)
Log Message:
-----------
get indexes for errors using block based method

Modified Paths:
--------------
    trunk/bibdesk/BDSKErrorObjectController.m

Modified: trunk/bibdesk/BDSKErrorObjectController.m
===================================================================
--- trunk/bibdesk/BDSKErrorObjectController.m   2025-02-24 17:41:50 UTC (rev 
29062)
+++ trunk/bibdesk/BDSKErrorObjectController.m   2025-02-24 18:09:27 UTC (rev 
29063)
@@ -340,17 +340,10 @@
 }
 
 - (void)removeErrorsForEditor:(BDSKErrorEditor *)editor{
-       NSUInteger idx = [self countOfErrors];
-    BDSKErrorObject *errObj;
+    NSIndexSet *indexesToRemove = [errors 
indexesOfObjectsPassingTest:^(BDSKErrorObject *errObj, NSUInteger i, BOOL 
*stop){
+            return [[errObj editor] isEqual:editor];
+        }];
     
-    NSMutableIndexSet *indexesToRemove = [NSMutableIndexSet indexSet];
-
-    while (idx--) {
-               errObj = [self objectInErrorsAtIndex:idx];
-        if ([[errObj editor] isEqual:editor]) {
-            [indexesToRemove addIndex:idx];
-       }
-    }
     // batch these; this method is particularly slow (order of minutes) with a 
large number of errors, when closing the associated document, since using [self 
removeObjectFromErrorsAtIndex:index] in the loop causes KVO notifications to 
reload the tableview (although the tooltip rebuild appears to be what kills 
performance)
     [self willChange:NSKeyValueChangeRemoval valuesAtIndexes:indexesToRemove 
forKey:@"errors"];
     [errors removeObjectsAtIndexes:indexesToRemove];

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



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to