Revision: 14908 http://sourceforge.net/p/skim-app/code/14908 Author: hofman Date: 2025-01-31 18:24:30 +0000 (Fri, 31 Jan 2025) Log Message: ----------- declare replacement implementations as functions rather than methods
Modified Paths: -------------- trunk/NSCursor_SKExtensions.m trunk/PDFAnnotationLine_SKExtensions.m trunk/PDFAnnotationMarkup_SKExtensions.m trunk/SKRuntime.h trunk/SKRuntime.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2025-01-31 18:13:13 UTC (rev 14907) +++ trunk/NSCursor_SKExtensions.m 2025-01-31 18:24:30 UTC (rev 14908) @@ -84,19 +84,19 @@ static void (*original_set)(id, SEL) = NULL; static void (*original_hide)(id, SEL) = NULL; -- (void)replacement_set { +static void replacement_set(id self, SEL _cmd) { original_set(self, _cmd); hideLaserPointer(); } -+ (void)replacement_hide { +static void replacement_hide(id self, SEL _cmd) { original_hide(self, _cmd); hideLaserPointer(); } + (void)load { - original_set = (void(*)(id, SEL))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(set), @selector(replacement_set)); - original_hide = (void(*)(id, SEL))SKReplaceClassMethodImplementationFromSelector(self, @selector(hide), @selector(replacement_hide)); + original_set = (void(*)(id, SEL))SKReplaceInstanceMethodImplementation(self, @selector(set), (IMP)replacement_set); + original_hide = (void(*)(id, SEL))SKReplaceClassMethodImplementation(self, @selector(hide), (IMP)replacement_hide); } + (NSCursor *)zoomInCursor { Modified: trunk/PDFAnnotationLine_SKExtensions.m =================================================================== --- trunk/PDFAnnotationLine_SKExtensions.m 2025-01-31 18:13:13 UTC (rev 14907) +++ trunk/PDFAnnotationLine_SKExtensions.m 2025-01-31 18:24:30 UTC (rev 14908) @@ -64,7 +64,7 @@ static void (*original_setBounds)(id, SEL, NSRect) = NULL; -- (void)replacement_setBounds:(NSRect)newBounds { +static void replacement_setBounds(id self, SEL _cmd , NSRect newBounds) { NSPoint startPoint = [self startPoint]; NSPoint endPoint = [self endPoint]; original_setBounds(self, _cmd, newBounds); @@ -74,7 +74,7 @@ + (void)load { if (@available(macOS 10.14, *)) {} else - original_setBounds = (void (*)(id, SEL, NSRect))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(setBounds:), @selector(replacement_setBounds:)); + original_setBounds = (void (*)(id, SEL, NSRect))SKReplaceInstanceMethodImplementation(self, @selector(setBounds:), (IMP)replacement_setBounds); } - (void)setDefaultSkimNoteProperties { Modified: trunk/PDFAnnotationMarkup_SKExtensions.m =================================================================== --- trunk/PDFAnnotationMarkup_SKExtensions.m 2025-01-31 18:13:13 UTC (rev 14907) +++ trunk/PDFAnnotationMarkup_SKExtensions.m 2025-01-31 18:24:30 UTC (rev 14908) @@ -93,7 +93,7 @@ static void (*original_setColor)(id, SEL, id) = NULL; // PDFView raises an exception when a highlight has a sRGB black color -- (void)replacement_setColor:(NSColor *)color { +static void replacement_setColor(id self, SEL _cmd, NSColor *color) { if ([self markupType] == kPDFMarkupTypeHighlight && [color isEqual:[NSColor colorWithSRGBRed:0.0 green:0.0 blue:0.0 alpha:1.0]]) color = [NSColor colorWithSRGBRed:0.0000001 green:0.0000001 blue:0.0000001 alpha:1.0]; original_setColor(self, _cmd, color); @@ -100,7 +100,7 @@ } + (void)load { - original_setColor = (void (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(setColor:), @selector(replacement_setColor:)); + original_setColor = (void (*)(id, SEL, id))SKReplaceInstanceMethodImplementation(self, @selector(setColor:), (IMP)replacement_setColor); } - (void)setDefaultSkimNoteProperties { Modified: trunk/SKRuntime.h =================================================================== --- trunk/SKRuntime.h 2025-01-31 18:13:13 UTC (rev 14907) +++ trunk/SKRuntime.h 2025-01-31 18:24:30 UTC (rev 14908) @@ -42,10 +42,6 @@ extern IMP _Nullable SKReplaceInstanceMethodImplementation(Class aClass, SEL aSelector, IMP anImp); -extern IMP _Nullable SKReplaceInstanceMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL impSelector); - extern IMP _Nullable SKReplaceClassMethodImplementation(Class aClass, SEL aSelector, IMP anImp); -extern IMP _Nullable SKReplaceClassMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL impSelector); - NS_ASSUME_NONNULL_END Modified: trunk/SKRuntime.m =================================================================== --- trunk/SKRuntime.m 2025-01-31 18:13:13 UTC (rev 14907) +++ trunk/SKRuntime.m 2025-01-31 18:24:30 UTC (rev 14908) @@ -54,15 +54,6 @@ return imp; } -IMP SKReplaceInstanceMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL impSelector) { - Method method = class_getInstanceMethod(aClass, impSelector); - return method ? SKReplaceInstanceMethodImplementation(aClass, aSelector, method_getImplementation(method)) : NULL; -} - IMP SKReplaceClassMethodImplementation(Class aClass, SEL aSelector, IMP anImp) { return SKReplaceInstanceMethodImplementation(object_getClass(aClass), aSelector, anImp); } - -IMP SKReplaceClassMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL impSelector) { - return SKReplaceInstanceMethodImplementationFromSelector(object_getClass(aClass), aSelector, impSelector); -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit