aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMScriptRunner.m
diff options
context:
space:
mode:
authorGravatar thomasvl <thomasvl@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-02-28 16:59:06 +0000
committerGravatar thomasvl <thomasvl@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-02-28 16:59:06 +0000
commit48bce85defdca07b2c2e872dbaccac374def1ca6 (patch)
treefd08f563c54a0987656a06bb46780d4d0866deb8 /Foundation/GTMScriptRunner.m
parent1270f0c1ee5cf31faadc6ca41cf487cdd9e91508 (diff)
switch the helper on NSTask over to a static function incase anyone ever wanted
to use this code in some plugin where categories get dangerous.
Diffstat (limited to 'Foundation/GTMScriptRunner.m')
-rw-r--r--Foundation/GTMScriptRunner.m19
1 files changed, 6 insertions, 13 deletions
diff --git a/Foundation/GTMScriptRunner.m b/Foundation/GTMScriptRunner.m
index 30769fb..e2d0995 100644
--- a/Foundation/GTMScriptRunner.m
+++ b/Foundation/GTMScriptRunner.m
@@ -18,10 +18,7 @@
#import "GTMScriptRunner.h"
-
-@interface NSTask (SafeLaunching)
-- (BOOL)safeLaunch;
-@end
+static BOOL LaunchNSTaskCatchingExceptions(NSTask *task);
@interface GTMScriptRunner (PrivateMethods)
- (NSTask *)interpreterTaskWithAdditionalArgs:(NSArray *)args;
@@ -95,7 +92,7 @@
NSFileHandle *toTask = [[task standardInput] fileHandleForWriting];
NSFileHandle *fromTask = [[task standardOutput] fileHandleForReading];
- if (![task safeLaunch]) {
+ if (!LaunchNSTaskCatchingExceptions(task)) {
return nil;
}
@@ -145,7 +142,7 @@
NSTask *task = [self interpreterTaskWithAdditionalArgs:scriptPlusArgs];
NSFileHandle *fromTask = [[task standardOutput] fileHandleForReading];
- if (![task safeLaunch]) {
+ if (!LaunchNSTaskCatchingExceptions(task)) {
return nil;
}
@@ -230,17 +227,13 @@
@end
-@implementation NSTask (SafeLaunching)
-
-- (BOOL)safeLaunch {
+static BOOL LaunchNSTaskCatchingExceptions(NSTask *task) {
BOOL isOK = YES;
@try {
- [self launch];
+ [task launch];
} @catch (id ex) {
isOK = NO;
- NSLog(@"Failed to launch interpreter '%@' due to: %@", [self launchPath], ex);
+ NSLog(@"Failed to launch interpreter '%@' due to: %@", [task launchPath], ex);
}
return isOK;
}
-
-@end