diff options
author | thomasvl <thomasvl@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-02-28 16:59:06 +0000 |
---|---|---|
committer | thomasvl <thomasvl@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-02-28 16:59:06 +0000 |
commit | 48bce85defdca07b2c2e872dbaccac374def1ca6 (patch) | |
tree | fd08f563c54a0987656a06bb46780d4d0866deb8 /Foundation/GTMScriptRunner.m | |
parent | 1270f0c1ee5cf31faadc6ca41cf487cdd9e91508 (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.m | 19 |
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 |