Re: -[NSScanner scanUpToString:stopString:NULL] - 10.3.9 Crash, due Xcode 3.1?
Re: -[NSScanner scanUpToString:stopString:NULL] - 10.3.9 Crash, due Xcode 3.1?
- Subject: Re: -[NSScanner scanUpToString:stopString:NULL] - 10.3.9 Crash, due Xcode 3.1?
- From: "Michael Ash" <email@hidden>
- Date: Thu, 2 Oct 2008 00:00:40 -0400
On Wed, Oct 1, 2008 at 8:11 PM, Jerry Krinock <email@hidden> wrote:
>
> On 2008 Oct, 01, at 15:17, Michael Ash wrote:
>
>> Without seeing the rest of your code I can't say for sure, but this is
>> extremely suspect....
>>
>> You should essentially always use this method (and any other method
>> that uses a SomeClass** parameter to "return" values) like this:
>>
>> NSString *stringValue = nil;
>> [scanner scanUpToString:stopString intoString:&stringValue];
>
> Yes, I see what you mean there. It looks suspicious without the rest of the
> code. Here is the entire method (without the logging)
>
> - (BOOL)scanUpToAndThenLeapOverString:(NSString*)stopString
> intoString:(NSString**)stringValue {
> [self scanUpToString:stopString intoString:stringValue] ;
> BOOL result = [self scanString:stopString intoString:NULL] ;
>
> return result ;
> }
>
> So you see I'm just passing that NSString** through in order to provide this
> handy addition to NSScanner. I've use this method "all over the place" with
> no trouble.
>
> And in this particular case, my invocation passes NULL for the second
> argument, and it logged as NULL (see original post), so I can't see how that
> value could be a problem.
>
> Anyhow...thanks, Mike. I shall keep thinking about it.
You're right, this is entirely fine. I had assumed it was a local
variable, but it's actually a parameter. (As an aside, just a bit of
stylistic advice, I always like to name these things with a leading
"out", as in outStringValue, to indicate that they're actually being
used to return things. Helps to reduce confusion in my experience.)
>From your crash, I'd guess that there's a memory management problem
and either the scanner or the stopString parameter have been
deallocated. Not sure why that would only manifest on Panther, but
that's what the backtrace looks like to me. If you can, try running
the app with zombies enabled and see if it gives you any more
information. Even a fairly nontechnical user should be able to do this
if he can follow instructions, by entering a command like this into
his Terminal:
NSZombieEnabled=YES /path/to/your.app/Contents/MacOS/your
(I can't remember if bash is the default shell in 10.3, if not then
the syntax is going to have to be a bit different.)
Mike
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden