Charles Vidal wrote:
David Snopek wrote:
[…]After about 30 seconds of play I get either a floating-point exception
or a segfault. I ran ufo through gdb a couple times and the segfault
comes from SDLSprite::Draw().
It doesn’t give me a line number so
’this’ might me uninitialized?
I’ll work on it.
I have worked on this bug :).
I think it’s something like that :
for(Node = head; Node != NULL; Node = Node->m_Next)
{
if (WhatHappens()==1) {
// If Node == NULL the continue make Node=Node->m_Next and core dump
if (Node==NULL) break;
continue;
}
if (ShouldRemove()==1) { …
Why do I have make this WhatHappen and ShouldRemove ?
To don’t rewrite the loop , and overload only the WhatHappens method
and ShouldRemove in object herited.
if Node is modify in WhatHappens or ShouldRemove return 1 ,
then Node could be NULL and then core dump.
Hum, I don’t know why I don’t make something like that:
for(Node = head; Node != NULL; Node = Node->m_Next)
{
if (WhatHappens()==1) {
SDLSprite *Tmp;
Tmp = Node->m_Next; DelSprite(Node); Node = Tmp;
if (Node==NULL) break;
else continue;
}
charles vidal
jeuxfr.free.fr/Ufo/