BOOL CKSubclassOverridesClassMethod()

in RenderCore/Utilities/CKInternalHelpers.mm [31:45]


BOOL CKSubclassOverridesClassMethod(Class superclass, Class subclass, SEL selector) noexcept
{
  if (![subclass isSubclassOfClass:superclass]) {
    return NO;
  }
  Method superclassMethod = class_getClassMethod(superclass, selector);
  Method subclassMethod = class_getClassMethod(subclass, selector);
  IMP superclassIMP = superclassMethod ? method_getImplementation(superclassMethod) : NULL;
  IMP subclassIMP = subclassMethod ? method_getImplementation(subclassMethod) : NULL;
  if (superclassIMP == NULL) {
    return NO;
  }

  return (superclassIMP != subclassIMP);
}