Skip to content

Commit

Permalink
Order, reformat selectors in CDRSpyInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
cbguder committed Feb 9, 2014
1 parent e6c679b commit f388e12
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions Source/Doubles/CDRSpyInfo.mm
Expand Up @@ -59,20 +59,24 @@ + (CDRSpyInfo *)spyInfoForObject:(id)object {
}

- (IMP)impForSelector:(SEL)selector {
BOOL yieldToKVO = (sel_isEqual(selector, @selector(addObserver:forKeyPath:options:context:)) ||
sel_isEqual(selector, @selector(removeObserver:forKeyPath:)) ||
sel_isEqual(selector, @selector(removeObserver:forKeyPath:context:)) ||
sel_isEqual(selector, @selector(mutableArrayValueForKey:)) ||
sel_isEqual(selector, @selector(mutableSetValueForKey:)) ||
sel_isEqual(selector, @selector(mutableOrderedSetValueForKey:)) ||
sel_isEqual(selector, @selector(willChange:valuesAtIndexes:forKey:)) ||
sel_isEqual(selector, @selector(didChange:valuesAtIndexes:forKey:)) ||
sel_isEqual(selector, @selector(setValue:forKey:)) ||
sel_isEqual(selector, @selector(valueForKey:)) ||
strcmp(class_getName(self.publicClass), class_getName(self.spiedClass)));
if (yieldToKVO) {
BOOL yieldToSpiedClass = (
sel_isEqual(selector, @selector(addObserver:forKeyPath:options:context:)) ||
sel_isEqual(selector, @selector(didChange:valuesAtIndexes:forKey:)) ||
sel_isEqual(selector, @selector(mutableArrayValueForKey:)) ||
sel_isEqual(selector, @selector(mutableOrderedSetValueForKey:)) ||
sel_isEqual(selector, @selector(mutableSetValueForKey:)) ||
sel_isEqual(selector, @selector(removeObserver:forKeyPath:)) ||
sel_isEqual(selector, @selector(removeObserver:forKeyPath:context:)) ||
sel_isEqual(selector, @selector(setValue:forKey:)) ||
sel_isEqual(selector, @selector(valueForKey:)) ||
sel_isEqual(selector, @selector(willChange:valuesAtIndexes:forKey:)) ||
strcmp(class_getName(self.publicClass), class_getName(self.spiedClass))
);

if (yieldToSpiedClass) {
return NULL;
}

Method originalMethod = class_getInstanceMethod(self.spiedClass, selector);
return method_getImplementation(originalMethod);
}
Expand Down

0 comments on commit f388e12

Please sign in to comment.