List Info

Thread: aabb.h model.h and OSX




aabb.h model.h and OSX
country flaguser name
France
2007-05-08 07:08:09
Hi everyone,

I am trying to make GtkRadiant1.5 (latest svn) succeeds in
loading  
md3 models without crashing at runtime and here is the
situation I  
found (the crash happens on both architectures ppc and
intel).
I am using the Quake3 "museum.map" file to trigger
the crash.
Using gdb/ddd, I noticed this : when Gtkradiant loads
femhead.md3  
(the first model used by the map), there is a call to   
model.updateAABB() in md3.cpp.
In the updateAABB() procedure of the Model class in model.h,
there is  
a loop and the problem comes from that loop.
At the beginnig, the loop variable i is correctly defined
and the  
first iteration runs ok. But things change for the second :
here are  
typical values I got :
	first iteration :    	i:  _M_current = 0x73da700	*i:  
(Surface *&)  
0x73da700: 0x357b
	second iteration: 	i:  _M_current = 0x73da704	*i:  
(Surface *&)  
0x73da704: 0x0  <--------  NULL pointer !!!
and the program crashes at the call (*i)->localAABB()

I also noticed something which looks  wrong  to me, related
to the  
m_surfaces variables at this same point ;  here are some of
the  
values I got from gdb :
this->m_surfaces :	_M_start		0x73da700
					_M_finish	0x73da718
					_M_end_of_storage		0x0    <-----  NULL again !!

Any ideas or suggestions ?
Thanks.

V.

_______________________________________________
Gtkradiant mailing list
Gtkradiantzerowing.idsoftware.com
http://zerowing.idsoftware.com/cgi-bin/mailman
/listinfo/gtkradiant

Re: aabb.h model.h and OSX
country flaguser name
United States
2007-05-08 16:26:04
Sadly I don't understand the template known as iterator in
C++, so I really can't say what is happening in this code.

That said, it would seem the ++i is iterating incorrectly
and picking some other address rather than the next surface
- because if it was working correctly I'm sure it would end
fail the i != 
m_surfaces.end() before it ever got to any invalid addresses
like NULL.

So perhaps the iterator is configured wrongly in some way
when it is created, or when surfaces are added to it.

Vincent Morénas wrote:
> Hi everyone,
> 
> I am trying to make GtkRadiant1.5 (latest svn) succeeds
in loading  
> md3 models without crashing at runtime and here is the
situation I  
> found (the crash happens on both architectures ppc and
intel).
> I am using the Quake3 "museum.map" file to
trigger the crash.
> Using gdb/ddd, I noticed this : when Gtkradiant loads
femhead.md3  
> (the first model used by the map), there is a call to  

> model.updateAABB() in md3.cpp.
> In the updateAABB() procedure of the Model class in
model.h, there is  
> a loop and the problem comes from that loop.
> At the beginnig, the loop variable i is correctly
defined and the  
> first iteration runs ok. But things change for the
second : here are  
> typical values I got :
> 	first iteration :    	i:  _M_current = 0x73da700	*i:  
(Surface *&)  
> 0x73da700: 0x357b
> 	second iteration: 	i:  _M_current = 0x73da704	*i:  
(Surface *&)  
> 0x73da704: 0x0  <--------  NULL pointer !!!
> and the program crashes at the call
(*i)->localAABB()
> 
> I also noticed something which looks  wrong  to me,
related to the  
> m_surfaces variables at this same point ;  here are
some of the  
> values I got from gdb :
> this->m_surfaces :	_M_start		0x73da700
> 					_M_finish	0x73da718
> 					_M_end_of_storage		0x0    <-----  NULL again
!!
> 
> Any ideas or suggestions ?
> Thanks.
> 
> V.
> 
> _______________________________________________
> Gtkradiant mailing list
> Gtkradiantzerowing.idsoftware.com
> http://zerowing.idsoftware.com/cgi-bin/mailman
/listinfo/gtkradiant
> 

-- 
LordHavoc
Author of DarkPlaces Quake1 engine and mod
http://icculu
s.org/twilight/darkplaces/
"War does not prove who is right, it proves who is
left." - Unknown
"Any sufficiently advanced technology is
indistinguishable from a rigged demo." - James Klass


_______________________________________________
Gtkradiant mailing list
Gtkradiantzerowing.idsoftware.com
http://zerowing.idsoftware.com/cgi-bin/mailman
/listinfo/gtkradiant

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )