[Gtkradiant] r128 and MacOSX

Vincent Morénas vmorenas at free.fr
Tue Dec 26 12:00:06 CST 2006


Hi,

I upgraded to revision 128 of GtkRadiant and managed to have it  
compiled (using gcc 4.0.1 from Apple) with a few modifications:
1/	contrib/brushexport/export.cpp : added the casting operator (const  
unsigned int) in front of last_slash (line 149)
2/	contrib/sunplug/sunplug.cpp : no itoa function on MacOSX (darwin)  
so I used the linux defined one by replacing in line 42
#ifdef __linux__
with
#if defined (__linux__) || defined (__APPLE__)
(maybe a sprintf could also be used....)
3/	radiant/stacktrace.cpp : no execinfo.h on MacOSX  so no backtrace  
available I believe....  I just did a very ugly thing to have it  
compile :
#ifdef __APPLE__
void write_stack_trace(TextOutputStream& outputStream)
{
return;
}
#endif

The only problem left is at execution time : radiant crashes when  
loading maps (but not all of them); for instance :

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000004
0x000ba291 in aabb_valid (aabb=@0x4) at libs/math/aabb.h:64
64          && extents_valid(aabb.extents[2]);
(gdb) bt
#0  0x000ba291 in aabb_valid (aabb=@0x4) at libs/math/aabb.h:64
#1  0x000d4bf6 in aabb_extend_by_aabb_safe (aabb=@0x180161b0,  
other=@0x4) at libs/math/aabb.h:152
#2  0x061b2014 in Model::updateAABB (this=0x1801619c) at plugins/ 
md3model/model.h:299
#3  0x061a02a8 in MD3Model_read (model=@0x1801619c, buffer=0x4623600  
"IDP3\017") at plugins/md3model/md3.cpp:305
#4  0x061a02e6 in MD3Model_new (buffer=0x4623600 "IDP3\017") at  
plugins/md3model/md3.cpp:311
#5  0x061a034b in MD3Model_fromBuffer (buffer=0x4623600 "IDP3\017")  
at plugins/md3model/md3.cpp:331
#6  0x061a037c in loadMD3Model (file=@0x18015f80) at plugins/md3model/ 
md3.cpp:338
#7  0x061a6ae1 in MD3ModelLoader::loadModel (this=0x49b2780,  
file=@0x18015f80) at plugins/md3model/plugin.cpp:51
#8  0x00069958 in ModelResource_load (loader=0x49b2780,  
name=0x18015fe0 "models/mapobjects/wallhead/femhead.md3") at radiant/ 
referencecache.cpp:211
#9  0x0006a0d4 in Model_load (loader=0x49b2780, path=0x18015fb0 "/ 
Applications/Jeux/Quake3/baseq3/", name=0x18015fe0 "models/mapobjects/ 
wallhead/femhead.md3", type=0x18015fa0 "md3") at radiant/ 
referencecache.cpp:314
#10 0x00184d08 in ModelResource::loadCached (this=0x18015f10) at  
radiant/referencecache.cpp:419
#11 0x00184dfd in ModelResource::loadModel (this=0x18015f10) at  
radiant/referencecache.cpp:432
#12 0x00184ec2 in ModelResource::load (this=0x18015f10) at radiant/ 
referencecache.cpp:442
#13 0x0544e173 in Model::realise (this=0x45b6348) at plugins/entity/ 
model.h:52
#14 0x0018449b in ModelResource::attach (this=0x18015f10,  
observer=@0x45b6348) at radiant/referencecache.cpp:494
#15 0x0544c2f9 in ResourceReference::attach (this=0x45b634c,  
observer=@0x45b6348) at libs/entitylib.h:735
#16 0x0545f29b in Model::modelChanged (this=0x45b6348,  
value=0x16fb9e30 "models/mapobjects/wallhead/femhead.md3") at plugins/ 
entity/model.h:73
#17 0x0545f2d3 in SingletonModel::modelChanged (this=0x45b633c,  
value=0x16fb9e30 "models/mapobjects/wallhead/femhead.md3") at plugins/ 
entity/model.h:114
#18 0x0547edec in Member1<SingletonModel, char const*, void, & 
(SingletonModel::modelChanged(char const*))>::call  
(object=@0x45b633c, a1=0x16fb9e30 "models/mapobjects/wallhead/ 
femhead.md3") at libs/generic/functional.h:38
#19 0x0547ee16 in BindFirstOpaque1<Member1<SingletonModel, char  
const*, void, &(SingletonModel::modelChanged(char const*))> >::thunk  
(environment=0x45b633c, a1=0x16fb9e30 "models/mapobjects/wallhead/ 
femhead.md3") at libs/generic/callback.h:149
#20 0x000b5c09 in Callback1<char const*, void>::operator()  
(this=0x18015e28, firstArgument=0x16fb9e30 "models/mapobjects/ 
wallhead/femhead.md3") at libs/generic/callback.h:328
#21 0x0545d31b in KeyValue::attach (this=0x16fb9e00,  
observer=@0x16fb9b14) at libs/entitylib.h:361
#22 0x0545665b in KeyObserverMap::insert (this=0x45b627c,  
key=0x16fb9d90 "model", value=@0x16fb9e00) at plugins/entity/ 
keyobservers.h:41
#23 0x0545d83d in EntityKeyValues::attach (this=0x45b6248,  
observer=@0x45b627c) at libs/entitylib.h:587
#24 0x05480031 in MiscModel::instanceAttach (this=0x45b6244,  
path=@0x18015ac4) at plugins/entity/miscmodel.cpp:158
#25 0x054807e2 in MiscModelInstance::MiscModelInstance  
(this=0x18015ac0, path=@0xbfffdbb8, parent=0x16f78770,  
miscmodel=@0x45b6244) at plugins/entity/miscmodel.cpp:295
#26 0x05480841 in MiscModelNode::create (this=0x45b6200,  
path=@0xbfffdbb8, parent=0x16f78770) at plugins/entity/miscmodel.cpp:444
#27 0x000e9307 in InstanceSubgraphWalker::pre (this=0xbfffdbb0,  
node=@0x45b6210) at libs/instancelib.h:47
#28 0x000e9548 in Node_traverseSubgraph (node=@0x45b6210,  
walker=@0xbfffdbb0) at libs/scenelib.h:290
#29 0x001507d7 in TraversableNodeSet::traverse (this=0x16f6d6a8,  
walker=@0xbfffdbb0) at libs/traverselib.h:215
#30 0x000e9579 in Node_traverseSubgraph (node=@0x16f6d68c,  
walker=@0xbfffdbb0) at libs/scenelib.h:295
#31 0x001944b2 in CompiledGraph::insert_root (this=0x4016a00,  
root=@0x16f6d68c) at radiant/scenegraph.cpp:115
#32 0x0015260d in Map::realise (this=0x2191a0) at radiant/map.cpp:341
#33 0x0018449b in ModelResource::attach (this=0x16f79490,  
observer=@0x2191a0) at radiant/referencecache.cpp:494
#34 0x00044a5c in Map_LoadFile (filename=0x2170c0 "/Applications/Jeux/ 
Quake3/baseq3/maps/museum.map") at radiant/map.cpp:1039
#35 0x00044c1f in OpenMap () at radiant/map.cpp:1902
#36 0x00145f87 in Function0<void, &(OpenMap())>::call () at libs/ 
generic/functional.h:120
#37 0x00145f97 in Caller0To1<Function0<void, &(OpenMap())>,  
void*>::call () at libs/generic/functional.h:186
#38 0x00145fb5 in BindFirstOpaque<Caller0To1<Function0<void, &(OpenMap 
())>, void*> >::thunk (environment=0x0) at libs/generic/callback.h:120
#39 0x03ce0e10 in g_cclosure_marshal_VOID__VOID ()
#40 0x03cc90fa in g_closure_invoke ()
#41 0x03ce01f3 in signal_emit_unlocked_R ()
#42 0x03cdf28d in g_signal_emit_valist ()
#43 0x03cdf5e0 in g_signal_emit ()
#44 0x0375366b in gtk_real_button_released ()
#45 0x03ce0e10 in g_cclosure_marshal_VOID__VOID ()
#46 0x03cc93fd in g_type_class_meta_marshal ()
#47 0x03cc90fa in g_closure_invoke ()
#48 0x03cdfd3f in signal_emit_unlocked_R ()
#49 0x03cdf28d in g_signal_emit_valist ()
#50 0x03cdf5e0 in g_signal_emit ()
#51 0x03753989 in gtk_button_button_release ()
#52 0x038430a7 in _gtk_marshal_BOOLEAN__BOXED ()
#53 0x03cc93fd in g_type_class_meta_marshal ()
#54 0x03cc90fa in g_closure_invoke ()
#55 0x03ce0469 in signal_emit_unlocked_R ()
#56 0x03cdf31f in g_signal_emit_valist ()
#57 0x03cdf5e0 in g_signal_emit ()
#58 0x03974e2f in gtk_widget_event_internal ()
#59 0x038409ab in gtk_propagate_event ()
#60 0x038413a5 in gtk_main_do_event ()
#61 0x03b1d125 in gdk_event_dispatch ()
#62 0x0322ba56 in g_main_dispatch ()
#63 0x0322cfcc in g_main_context_dispatch ()
#64 0x0322d556 in g_main_context_iterate ()
#65 0x0322dd4b in g_main_loop_run ()
#66 0x03840d58 in gtk_main ()
#67 0x0003663a in main (argc=1, argv=0xbffff190) at radiant/main.cpp:629



More information about the Gtkradiant mailing list