[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.]
From: |
Simon Stapleton |
Subject: |
Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.] |
Date: |
Tue, 27 Apr 2004 20:04:54 +0200 |
On 27 Apr 2004, at 13:38, Richard Frith-Macdonald wrote:
By the way, what's with all the IF_NO_GC(RELEASE(x)) stuff in
NSProcessInfo.m, anyway? The RELEASE/RETAIN etc macros should deal
with GC transparently anyway, no? Seems like a bunch of
irrelevancies to me, although I'm willing to admit I may well be
wrong on this ;-)
IF_NO_GC is generally used to avoid compiler warnings and to wrap
larger sections of code.
eg rather than having a loop with with RETAIN() operations inside it,
you could avoid executing the loop.
Well, I'd say they're at best irrelevant in _gnu_process_args(), in
that case, and at worst, obfuscation.
The values of _gnu_noobjc_argv and _gnu_noobjc_env should be zero
after +initialize is called, while _gnu_processName, _gnu_arguments
and _gnu_environment should be non-nil.
Yep, that's what I'm seeing (at least at the end of +initialize). It
seems that they are being released later, although why, I can't say.
I _can_ say it's not me (explicitly) doing it, though. They might
be being trampled, but I can't see any reason why that should happen,
either.
I don't know of any reason for them being overwritten ... which is
what you need to look for.
The objects are not just being released ... the actual values in the
variables are being changed.
OK. Here's _exactly_ what happens in my app.
My main() is absolutely bog-stock, create an autorelease pool and call
GSWApplicationMain() with the name of the app and argc/argv
At this point, the args have been stored away by [NSProcessInfo load],
but [NSProcessInfo initialize] has not been called
GSWApplicationMain calls GSWApplicationMainReal
This calls +[NSProcessInfo processInfo]
This triggers +[NSProcessInfo initialize], which correctly, but for
some reason transiently, sets _gnu_environment and friends
On entry to +[NSProcessInfo processInfo], they have been reset to null.
What can I possibly be doing wrong? There Is absolutely no logic to
this that I can see. And certainly nothing that I'm explicitly doing
to cause it. It's all in the GNUstep code.
some further information on the Application, in case it's of any
interest/relevance
The EOs for the app are built into their own framework, which includes
the model
The Components for the app are built into a number of other frameworks,
some of which depend on the EO framework
The App itself relies on all the above-mentioned frameworks.
Simon
--
PGP Key Id : 0x50D0698D
--
If the answer isn't obvious, the question is a distraction. Go find an
easier question.
- Eeeagh! I'm at my wits end., Simon Stapleton, 2004/04/26
- RE: Eeeagh! I'm at my wits end., Adam Fedor, 2004/04/26
- Re: Eeeagh! I'm at my wits end., Simon Stapleton, 2004/04/27
- Re: Eeeagh! I'm at my wits end., Simon Stapleton, 2004/04/27
- Message not available
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.], Simon Stapleton, 2004/04/27
- Message not available
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.],
Simon Stapleton <=
- Message not available
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.], Simon Stapleton, 2004/04/28
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.], Simon Stapleton, 2004/04/28
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.], David Ayers, 2004/04/28
- Re: GSWeb crash upon startup [Was: Re: Eeeagh! I'm at my wits end.], Simon Stapleton, 2004/04/28