Revision: 4363
http://skim-app.svn.sourceforge.net/skim-app/?rev=4363&view=rev
Author: hofman
Date: 2008-08-06 22:03:42 +0000 (Wed, 06 Aug 2008)
Log Message:
-----------
Avoid the use of obj-c in +load methods, as it can trigger +initialize too
early. Add an extra options argument to method replacement functions for
setting or replacing only.
Modified Paths:
--------------
trunk/NSCell_SKExtensions.m
trunk/NSCharacterSet_SKExtensions.m
trunk/NSScrollView_SKExtensions.m
trunk/NSURL_SKExtensions.m
trunk/PDFAnnotationLink_SKExtensions.m
trunk/PDFAnnotationMarkup_SKExtensions.m
trunk/PDFDisplayView_SKExtensions.m
trunk/PDFDocument_SKExtensions.m
trunk/PDFPage_SKExtensions.m
trunk/SKFindTableView.m
trunk/SKRuntime.h
trunk/SKRuntime.m
trunk/SKThumbnailTableView.m
trunk/SKTypeSelectHelper.m
Modified: trunk/NSCell_SKExtensions.m
===================================================================
--- trunk/NSCell_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/NSCell_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -54,9 +54,7 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalHighlightColorWithFrameInView = (id (*)(id, SEL, NSRect,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(highlightColorWithFrame:inView:),
@selector(replacementHighlightColorWithFrame:inView:), YES);
- [pool release];
+ originalHighlightColorWithFrameInView = (id (*)(id, SEL, NSRect,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(highlightColorWithFrame:inView:),
@selector(replacementHighlightColorWithFrame:inView:), YES, SKReplaceOnly);
}
@end
Modified: trunk/NSCharacterSet_SKExtensions.m
===================================================================
--- trunk/NSCharacterSet_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/NSCharacterSet_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -69,10 +69,7 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- if ([self respondsToSelector:@selector(newlineCharacterSet)] == NO)
- SKReplaceMethodImplementationFromSelector(self,
@selector(newlineCharacterSet), @selector(replacementNewlineCharacterSet), NO);
- [pool release];
+ SKReplaceMethodImplementationFromSelector(self,
@selector(newlineCharacterSet), @selector(replacementNewlineCharacterSet), NO,
SKSetOnly);
}
@end
Modified: trunk/NSScrollView_SKExtensions.m
===================================================================
--- trunk/NSScrollView_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/NSScrollView_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -103,15 +103,13 @@
}
+ (void)load{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalSetHasHorizontalScroller = (void (*)(id, SEL,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(setHasHorizontalScroller:),
@selector(replacementSetHasHorizontalScroller:), YES);
- originalSetAutohidesScrollers = (void (*)(id, SEL,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(setAutohidesScrollers:),
@selector(replacementSetAutohidesScrollers:), YES);
- originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES);
- originalTile = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(tile),
@selector(replacementTile), YES);
+ originalSetHasHorizontalScroller = (void (*)(id, SEL,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(setHasHorizontalScroller:),
@selector(replacementSetHasHorizontalScroller:), YES, SKReplaceOnly);
+ originalSetAutohidesScrollers = (void (*)(id, SEL,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(setAutohidesScrollers:),
@selector(replacementSetAutohidesScrollers:), YES, SKReplaceOnly);
+ originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES, SKReplaceOnly);
+ originalTile = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(tile),
@selector(replacementTile), YES, SKReplaceOnly);
// dictionary doesn't retain keys, so no retain cycles; pointer equality
used to compare views
scrollViewPlacards = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0,
NULL, &kCFTypeDictionaryValueCallBacks);
- [pool release];
}
- (NSArray *)placards {
Modified: trunk/NSURL_SKExtensions.m
===================================================================
--- trunk/NSURL_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/NSURL_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -55,10 +55,8 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalInitFileURLWithPath = (id (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(initFileURLWithPath:), @selector(replacementInitFileURLWithPath:),
YES);
- originalInitWithString = (id (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self, @selector(initWithString:),
@selector(replacementInitWithString:), YES);
- [pool release];
+ originalInitFileURLWithPath = (id (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(initFileURLWithPath:), @selector(replacementInitFileURLWithPath:),
YES, SKReplaceOnly);
+ originalInitWithString = (id (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self, @selector(initWithString:),
@selector(replacementInitWithString:), YES, SKReplaceOnly);
}
+ (NSURL *)URLFromPasteboardAnyType:(NSPasteboard *)pasteboard {
Modified: trunk/PDFAnnotationLink_SKExtensions.m
===================================================================
--- trunk/PDFAnnotationLink_SKExtensions.m 2008-08-06 21:56:05 UTC (rev
4362)
+++ trunk/PDFAnnotationLink_SKExtensions.m 2008-08-06 22:03:42 UTC (rev
4363)
@@ -61,12 +61,8 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- if ([self instancesRespondToSelector:@selector(toolTip)])
- originalToolTip = (id (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip),
@selector(replacementToolTip), YES);
- if ([self instancesRespondToSelector:@selector(toolTipNoLabel)])
- originalToolTipNoLabel = (id (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip),
@selector(replacementToolTipNoLabel), YES);
- [pool release];
+ originalToolTip = (id (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip),
@selector(replacementToolTip), YES, SKReplaceOnly);
+ originalToolTipNoLabel = (id (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip),
@selector(replacementToolTipNoLabel), YES, SKReplaceOnly);
}
- (BOOL)isLink { return YES; }
Modified: trunk/PDFAnnotationMarkup_SKExtensions.m
===================================================================
--- trunk/PDFAnnotationMarkup_SKExtensions.m 2008-08-06 21:56:05 UTC (rev
4362)
+++ trunk/PDFAnnotationMarkup_SKExtensions.m 2008-08-06 22:03:42 UTC (rev
4363)
@@ -123,12 +123,10 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES);
+ originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES, SKReplaceOnly);
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_4)
- originalDrawWithBoxInContext = (void (*)(id, SEL, CGPDFBox,
CGContextRef))SKReplaceMethodImplementationFromSelector(self,
@selector(drawWithBox:inContext:),
@selector(replacementDrawWithBox:inContext:), YES);
+ originalDrawWithBoxInContext = (void (*)(id, SEL, CGPDFBox,
CGContextRef))SKReplaceMethodImplementationFromSelector(self,
@selector(drawWithBox:inContext:),
@selector(replacementDrawWithBox:inContext:), YES, SKReplaceOnly);
lineRectsDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL,
&kCFTypeDictionaryValueCallBacks);
- [pool release];
}
- (CFMutableArrayRef)lineRects {
Modified: trunk/PDFDisplayView_SKExtensions.m
===================================================================
--- trunk/PDFDisplayView_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/PDFDisplayView_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -226,32 +226,21 @@
void SKSwizzlePDFDisplayViewMethods() {
Class PDFDisplayViewClass = NSClassFromString(@"PDFDisplayView");
if (PDFDisplayViewClass) {
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(resetCursorRects)])
- originalResetCursorRects = (void (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(resetCursorRects), (IMP)replacementResetCursorRects, NULL, YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(passwordEntered:)])
- originalPasswordEntered = (void (*)(id, SEL,
id))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(passwordEntered:), (IMP)replacementPasswordEntered, NULL, YES);
+ originalResetCursorRects = (void (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(resetCursorRects), (IMP)replacementResetCursorRects, NULL, YES,
SKReplaceOnly);
+ originalPasswordEntered = (void (*)(id, SEL,
id))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(passwordEntered:), (IMP)replacementPasswordEntered, NULL, YES,
SKReplaceOnly);
if ([[NSUserDefaults standardUserDefaults]
boolForKey:@"SKDisableExtendedPDFViewAccessibility"]) return;
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityAttributeNames)])
- originalAccessibilityAttributeNames = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributeNames),
(IMP)replacementAccessibilityAttributeNames, NULL, YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityParameterizedAttributeNames)])
- originalAccessibilityParameterizedAttributeNames = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityParameterizedAttributeNames),
(IMP)replacementAccessibilityParameterizedAttributeNames, NULL, YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityAttributeValue:)])
- originalAccessibilityAttributeValue = (id (*)(id, SEL,
id))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributeValue:),
(IMP)replacementAccessibilityAttributeValue, NULL, YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityHitTest:)])
- originalAccessibilityHitTest = (id (*)(id, SEL,
NSPoint))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityHitTest:), (IMP)replacementAccessibilityHitTest, NULL,
YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityFocusedUIElement)])
- originalAccessibilityFocusedUIElement = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityFocusedUIElement),
(IMP)replacementAccessibilityFocusedUIElement, NULL, YES);
+ originalAccessibilityAttributeNames = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributeNames),
(IMP)replacementAccessibilityAttributeNames, NULL, YES, SKReplaceOnly);
+ originalAccessibilityParameterizedAttributeNames = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityParameterizedAttributeNames),
(IMP)replacementAccessibilityParameterizedAttributeNames, NULL, YES,
SKReplaceOnly);
+ originalAccessibilityAttributeValue = (id (*)(id, SEL,
id))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributeValue:),
(IMP)replacementAccessibilityAttributeValue, NULL, YES, SKReplaceOnly);
+ originalAccessibilityHitTest = (id (*)(id, SEL,
NSPoint))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityHitTest:), (IMP)replacementAccessibilityHitTest, NULL,
YES, SKReplaceOnly);
+ originalAccessibilityFocusedUIElement = (id (*)(id,
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityFocusedUIElement),
(IMP)replacementAccessibilityFocusedUIElement, NULL, YES, SKReplaceOnly);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityRangeForPositionAttributeForParameter:)]
== NO)
- SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityRangeForPositionAttributeForParameter:),
(IMP)replacementAccessibilityRangeForPositionAttributeForParameter, "@@:@",
YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityRTFForRangeAttributeForParameter:)]
== NO)
- SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityRTFForRangeAttributeForParameter:),
(IMP)replacementAccessibilityRTFForRangeAttributeForParameter, "@@:@", YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityAttributedStringForRangeAttributeForParameter:)]
== NO)
- SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributedStringForRangeAttributeForParameter:),
(IMP)replacementAccessibilityAttributedStringForRangeAttributeForParameter,
"@@:@", YES);
- if ([PDFDisplayViewClass
instancesRespondToSelector:@selector(accessibilityStyleRangeForIndexAttributeForParameter:)]
== NO)
- SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityStyleRangeForIndexAttributeForParameter:),
(IMP)replacementAccessibilityStyleRangeForIndexAttributeForParameter, "@@:@",
YES);
+ SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityRangeForPositionAttributeForParameter:),
(IMP)replacementAccessibilityRangeForPositionAttributeForParameter, "@@:@",
YES, SKSetOnly);
+ SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityRTFForRangeAttributeForParameter:),
(IMP)replacementAccessibilityRTFForRangeAttributeForParameter, "@@:@", YES,
SKSetOnly);
+ SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityAttributedStringForRangeAttributeForParameter:),
(IMP)replacementAccessibilityAttributedStringForRangeAttributeForParameter,
"@@:@", YES, SKSetOnly);
+ SKReplaceMethodImplementation(PDFDisplayViewClass,
@selector(accessibilityStyleRangeForIndexAttributeForParameter:),
(IMP)replacementAccessibilityStyleRangeForIndexAttributeForParameter, "@@:@",
YES, SKSetOnly);
}
}
Modified: trunk/PDFDocument_SKExtensions.m
===================================================================
--- trunk/PDFDocument_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/PDFDocument_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -72,10 +72,7 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- if ([self
instancesRespondToSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)])
- originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(getPrintOperationForPrintInfo:autoRotate:),
@selector(replacementGetPrintOperationForPrintInfo:autoRotate:), YES);
- [pool release];
+ originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id,
BOOL))SKReplaceMethodImplementationFromSelector(self,
@selector(getPrintOperationForPrintInfo:autoRotate:),
@selector(replacementGetPrintOperationForPrintInfo:autoRotate:), YES,
SKReplaceOnly);
}
- (PDFSelection *)selectionByExtendingSelection:(PDFSelection *)selection
toPage:(PDFPage *)page atPoint:(NSPoint)point {
Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/PDFPage_SKExtensions.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -74,10 +74,8 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES);
+ originalDealloc = (void (*)(id,
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc),
@selector(replacementDealloc), YES, SKReplaceOnly);
bboxCache = CFDictionaryCreateMutable(NULL, 0, NULL,
&kSKNSRectDictionaryValueCallBacks);
- [pool release];
}
// mainly useful for drawing the box in a PDFView while debugging
Modified: trunk/SKFindTableView.m
===================================================================
--- trunk/SKFindTableView.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/SKFindTableView.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -173,7 +173,7 @@
+ (void)load {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalDrawWithFrameInView = (void (*)(id, SEL, NSRect,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(drawWithFrame:inView:), @selector(replacementDrawWithFrame:inView:),
YES);
+ originalDrawWithFrameInView = (void (*)(id, SEL, NSRect,
id))SKReplaceMethodImplementationFromSelector(self,
@selector(drawWithFrame:inView:), @selector(replacementDrawWithFrame:inView:),
YES, SKReplaceOnly);
[pool release];
}
Modified: trunk/SKRuntime.h
===================================================================
--- trunk/SKRuntime.h 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/SKRuntime.h 2008-08-06 22:03:42 UTC (rev 4363)
@@ -48,7 +48,12 @@
hasBeenInitialized = YES;\
} while (0);
+enum {
+ SKSetOrReplace,
+ SKReplaceOnly,
+ SKSetOnly
+};
-extern IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP
anImp, const char *types, BOOL isInstance);
-extern IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL
aSelector, SEL impSelector, BOOL isInstance);
+extern IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP
anImp, const char *types, BOOL isInstance, int options);
+extern IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL
aSelector, SEL impSelector, BOOL isInstance, int options);
extern void SKExchangeMethodImplementations(Class aClass, SEL aSelector1, SEL
aSelector2, BOOL isInstance);
Modified: trunk/SKRuntime.m
===================================================================
--- trunk/SKRuntime.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/SKRuntime.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -127,7 +127,7 @@
#pragma mark API
// this is essentially class_replaceMethod, but handles instance/class
methods, returns any inherited implementation, and can get the types from an
inherited implementation
-IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP anImp,
const char *types, BOOL isInstance) {
+IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP anImp,
const char *types, BOOL isInstance, int options) {
IMP imp = NULL;
if (anImp) {
Method method = isInstance ? class_getInstanceMethod(aClass,
aSelector) : class_getClassMethod(aClass, aSelector);
@@ -136,17 +136,17 @@
if (types == NULL)
types = SK_method_getTypeEncoding(method);
}
- if (types)
+ if (types != NULL && (options != SKSetOnly || imp == NULL) && (options
!= SKReplaceOnly || imp != NULL))
SK_class_replaceMethod(isInstance ? aClass :
SK_object_getClass(aClass), aSelector, anImp, types);
}
return imp;
}
-IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL
impSelector, BOOL isInstance) {
+IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL
impSelector, BOOL isInstance, int options) {
Method method = isInstance ? class_getInstanceMethod(aClass, impSelector)
: class_getClassMethod(aClass, impSelector);
- return method ? SKReplaceMethodImplementation(aClass, aSelector,
SK_method_getImplementation(method), SK_method_getTypeEncoding(method),
isInstance) : NULL;
+ return method ? SKReplaceMethodImplementation(aClass, aSelector,
SK_method_getImplementation(method), SK_method_getTypeEncoding(method),
isInstance, options) : NULL;
}
void SKExchangeMethodImplementationsForSelectors(Class aClass, SEL aSelector1,
SEL aSelector2, BOOL isInstance) {
- SKReplaceMethodImplementation(aClass, aSelector2,
SKReplaceMethodImplementationFromSelector(aClass, aSelector1, aSelector2,
isInstance), NULL, isInstance);
+ SKReplaceMethodImplementation(aClass, aSelector2,
SKReplaceMethodImplementationFromSelector(aClass, aSelector1, aSelector2,
isInstance, SKReplaceOnly), NULL, isInstance, SKReplaceOnly);
}
Modified: trunk/SKThumbnailTableView.m
===================================================================
--- trunk/SKThumbnailTableView.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/SKThumbnailTableView.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -58,9 +58,7 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalTrackKnob = (void (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self, @selector(trackKnob:),
@selector(replacementTrackKnob:), YES);
- [pool release];
+ originalTrackKnob = (void (*)(id, SEL,
id))SKReplaceMethodImplementationFromSelector(self, @selector(trackKnob:),
@selector(replacementTrackKnob:), YES, SKReplaceOnly);
}
@end
Modified: trunk/SKTypeSelectHelper.m
===================================================================
--- trunk/SKTypeSelectHelper.m 2008-08-06 21:56:05 UTC (rev 4362)
+++ trunk/SKTypeSelectHelper.m 2008-08-06 22:03:42 UTC (rev 4363)
@@ -428,9 +428,7 @@
}
+ (void)load {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- originalMakeFirstResponder =
(typeof(originalMakeFirstResponder))SKReplaceMethodImplementationFromSelector(self,
@selector(makeFirstResponder:), @selector(replacementMakeFirstResponder:),
YES);
- [pool release];
+ originalMakeFirstResponder =
(typeof(originalMakeFirstResponder))SKReplaceMethodImplementationFromSelector(self,
@selector(makeFirstResponder:), @selector(replacementMakeFirstResponder:),
YES, SKReplaceOnly);
}
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit