diff options
author | Matthias Andreas Benkard <matthias@benkard.de> | 2008-07-06 17:05:51 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <matthias@benkard.de> | 2008-07-06 17:05:51 +0200 |
commit | a4dc2ef855a0513db78ce00338602fbdad9c33da (patch) | |
tree | 7b9279c4b6568c8694169cb9f2a24bc42a81845f | |
parent | 5315f6d376ac9ccbc43d257fa7c4d2cb6400be62 (diff) |
Add a workaround for an exception handling problem on Mac OS X.
-rw-r--r-- | MLKInterpreter.m | 5 | ||||
-rw-r--r-- | MLKStream.m | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/MLKInterpreter.m b/MLKInterpreter.m index a1b86fd..778985f 100644 --- a/MLKInterpreter.m +++ b/MLKInterpreter.m @@ -101,6 +101,8 @@ static MLKSymbol *_LAMBDA; { MLKDynamicContext *dynamicContext = [MLKDynamicContext currentContext]; + //NSLog (@"eval: %@", [program descriptionForLisp]); + if (!program || [program isKindOfClass:[MLKSymbol class]]) { //NSLog (@"Processing symbol."); @@ -559,11 +561,13 @@ static MLKSymbol *_LAMBDA; while (YES) { id result; + //NSLog (@"; LOAD: Reding a form."); id code = [MLKReader readFromStream:stream eofError:NO eofValue:eofValue recursive:NO preserveWhitespace:NO]; + //NSLog (@"; LOAD: Reading finished."); NSString *formdesc; //NSLog (@"%@", code); @@ -597,6 +601,7 @@ static MLKSymbol *_LAMBDA; } } + //NSLog (@"; LOAD: END"); return YES; } @end diff --git a/MLKStream.m b/MLKStream.m index fa36232..d130520 100644 --- a/MLKStream.m +++ b/MLKStream.m @@ -125,19 +125,26 @@ -(BOOL) isEOF { + BOOL eofp = NO; + NS_DURING { [self peekChar]; } NS_HANDLER { + // For some reason, NS_VALUERETURN (YES, BOOL) causes warnings of + // the following kind on the Apple runtime: + // + // *** Attempt to remove unrecognized exception handler 0xbfff6200 + // if ([[localException name] isEqual:@"MLKStreamError"]) - NS_VALUERETURN (YES, BOOL); + eofp = YES; else [localException raise]; } NS_ENDHANDLER; - return NO; + return eofp; } @end |