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