Revision: 27583
          http://sourceforge.net/p/bibdesk/svn/27583
Author:   hofman
Date:     2022-06-08 19:17:07 +0000 (Wed, 08 Jun 2022)
Log Message:
-----------
No need to define method overrides and ivars for table sort descriptors, as we 
don't use them anymore.

Modified Paths:
--------------
    trunk/bibdesk/BDSKTableSortDescriptor.h
    trunk/bibdesk/BDSKTableSortDescriptor.m

Modified: trunk/bibdesk/BDSKTableSortDescriptor.h
===================================================================
--- trunk/bibdesk/BDSKTableSortDescriptor.h     2022-06-08 19:13:53 UTC (rev 
27582)
+++ trunk/bibdesk/BDSKTableSortDescriptor.h     2022-06-08 19:17:07 UTC (rev 
27583)
@@ -39,14 +39,6 @@
 #import <Foundation/Foundation.h>
 
 
-@interface BDSKTableSortDescriptor : NSSortDescriptor {
-@protected
-    CFArrayRef keys;
-    CFIndex keyCount;
-    SEL selector;
-    BOOL ascending;
-}
-
+@interface BDSKTableSortDescriptor : NSSortDescriptor
 + (BDSKTableSortDescriptor *)tableSortDescriptorForIdentifier:(NSString *)tcID 
ascending:(BOOL)ascend;
-
 @end

Modified: trunk/bibdesk/BDSKTableSortDescriptor.m
===================================================================
--- trunk/bibdesk/BDSKTableSortDescriptor.m     2022-06-08 19:13:53 UTC (rev 
27582)
+++ trunk/bibdesk/BDSKTableSortDescriptor.m     2022-06-08 19:17:07 UTC (rev 
27583)
@@ -173,112 +173,4 @@
     return [sortDescriptor autorelease];
 }
 
-- (void)cacheKeys;
-{
-    // cache the components of the keypath and their count
-    keys = CFArrayCreateCopy(CFAllocatorGetDefault(), (CFArrayRef)[[self key] 
componentsSeparatedByString:@"."]);
-    keyCount = CFArrayGetCount(keys);
-}
-
-- (id)initWithKey:(NSString *)key ascending:(BOOL)flag selector:(SEL)theSel;
-{
-    if(self = [super initWithKey:key ascending:flag selector:theSel]){
-        [self cacheKeys];
-        
-        // since NSSortDescriptor ivars are declared @private, we have to use 
@defs to access them directly; use our own instead, since this won't be 
subclassed
-        selector = theSel;
-        ascending = flag;
-    }
-    return self;
-}
-
-- (id)initWithCoder:(NSCoder *)aCoder
-{
-    self = [super initWithCoder:aCoder];
-    if (self) {
-        [self cacheKeys];
-        selector = [self selector];
-        ascending = [self ascending];
-    }
-    return self;
-}
-
-- (void)encodeWithCoder:(NSCoder *)aCoder
-{
-    [super encodeWithCoder:aCoder];
-}
-
-- (id)copyWithZone:(NSZone *)aZone
-{
-    return [[[self class] allocWithZone:aZone] initWithKey:[self key] 
ascending:[self ascending] selector:[self selector]];
-}
-
-- (void)dealloc
-{
-    BDSKCFDESTROY(keys);
-    [super dealloc];
-}
-
-- (id)reversedSortDescriptor
-{
-    return [[[[self class] alloc] initWithKey:[self key] ascending:NO == 
ascending selector:selector] autorelease];
-}
-
-static inline void __GetValuesUsingCache(BDSKTableSortDescriptor *sort, id 
object1, id object2, id *value1, id *value2)
-{
-    CFIndex i;
-    *value1 = object1;
-    *value2 = object2;
-    NSString *key;
-    
-    // storing the array as an NSString ** buffer really didn't help with 
performance, but using CFArray functions does help cut down on the objc overhead
-    for(i = 0; i < sort->keyCount; i++){
-        key = (NSString *)CFArrayGetValueAtIndex(sort->keys, i);
-        *value1 = [*value1 valueForKey:key];
-        *value2 = [*value2 valueForKey:key];
-    }
-}
-
-- (NSComparisonResult)compareEndObject:(id)value1 toEndObject:(id)value2;
-{
-    // check to see if one of the values is nil
-    if(value1 == nil){
-        if(value2 == nil)
-            return NSOrderedSame;
-        else
-            return (ascending ? NSOrderedDescending : NSOrderedAscending);
-    } else if(value2 == nil){
-        return (ascending ? NSOrderedAscending : NSOrderedDescending);
-        // this check only applies to NSString objects
-    } else if([value1 isKindOfClass:[NSString class]] && [value2 
isKindOfClass:[NSString class]]){
-        if ([value1 isEqualToString:@""]) {
-            if ([value2 isEqualToString:@""]) {
-                return NSOrderedSame;
-            } else {
-                return (ascending ? NSOrderedDescending : NSOrderedAscending);
-            }
-        } else if ([value2 isEqualToString:@""]) {
-            return (ascending ? NSOrderedAscending : NSOrderedDescending);
-        }
-    }  
-    
-    NSComparisonResult result;
-    
-    // we use the IMP directly since performSelector: returns an id
-    typedef NSComparisonResult (*comparatorIMP)(id, SEL, id);
-    comparatorIMP comparator = (comparatorIMP)[value1 
methodForSelector:selector];
-    result = comparator(value1, selector, value2);
-    
-    return ascending ? result : -result;
-}
-
-- (NSComparisonResult)compareObject:(id)object1 toObject:(id)object2 {
-
-    id value1, value2;
-    BDSKASSERT_NOT_REACHED("Inefficient code path; use -[NSArray 
sortedArrayUsingMergesortWithDescriptors:] instead");
-    // get the values in bulk; since the same keypath is used for both 
objects, why compute it twice?
-    __GetValuesUsingCache(self, object1, object2, &value1, &value2);
-    return [self compareEndObject:value1 toEndObject:value2];
-}
-
 @end

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to