Hi guys,

Finally I found the cause of DList stack overflow and off-carrier aircraft problem.

The cause of the first one is that aip.ssgTransform of AICarrier are unexpectedly registered on every reset in AIBase::init().
The second one is caused by ssgEntry related code in AICarrier::init().
So I made a patch for doing these process only in the first init() calls.

Now, off-carrier aircraft and DList stack overflow are not "feature" anymore.

Enclosed is the patch for solving these problems.
I want you guys to test this on your platforms.
I don't think this affects any other AI objects' reinit() as far as I've tested but this should be tested on many machines.

If it works on some platforms, then I'll ask Durk to apply it.

By the way, I've encountered that aircraft doesn't follow the movement of Nimitz while testing this patch. In this case, simply remove ~/.fgfs/autosave.xml can fix this problem. You can also fix it by changing
Rendering options and exit fgfs by pressing ESC.

Best,

Tat

On Dec 8, 2007, at 8:44 AM, Tatsuhiro Nishioka wrote:

Hi,

I found kind of a hint of the cause of DList stack overflow.

After reset, the number of ssgTransform increases a lot.
so maybe this has something to do with the cause of the problem since
ssgTransform::cull calls _ssgPushMatrix and _ssgPopMatrix. these two
show "DList stack overflow" error.

Plus, this problem doesn't happen when --disable-ai-models is specified.
When I commented out    <scenario>nimitz_demo</scenario> from
preferences.xml,
this DL stack overflow doesn't happen even without --disable-ai- models.

So resetting carrier object in AICarrier::init() or methods called
from init() probably generates
redundant or unexpected ssgTransform objects.

I'll dive deeper tomorrow.
If any of you have any idea on what causes this, please let me know.

Best,

Tat


Attachment: FlightGear-DListStackOverflow.diff
Description: Binary data

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to