With the flag set, the icon would be free'd twice, first by the FXSplashWindow and then by Ruby's GC.
The internal object allocated when calling FXSplashWindow.new was FXSplashWindow instead of FXRbSplashWindow, so that no FXRbUnregisterRubyObj() was called. Therefore the object was double free'd. Stacktrace was: ==11529== Invalid read of size 8 ==11529== at 0x9265BBC: FX::FXObject::getClassName() const (FXObject.cpp:280) ==11529== by 0x862EE55: FXRbObject::freefunc(FX::FXObject*) (markfuncs.cpp:77) ==11529== by 0x4EA6254: finalize_list (gc.c:2944) ==11529== by 0x4EAAFC2: rb_gc_call_finalizer_at_exit (gc.c:3075) ==11529== by 0x4E9773B: ruby_cleanup (eval.c:101) ==11529== by 0x4E979C4: ruby_run_node (eval.c:244) ==11529== by 0x4007FA: main (main.c:38) ==11529== Address 0x75e24c0 is 0 bytes inside a block of size 248 free'd ==11529== at 0x4C2A4BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==11529== by 0x92B98AD: FX::FXSplashWindow::~FXSplashWindow() (FXSplashWindow.cpp:219) ==11529== by 0x917C990: FX::FXComposite::~FXComposite() (FXComposite.cpp:304) ==11529== by 0x929A5EF: FX::FXRootWindow::~FXRootWindow() (FXRootWindow.cpp:209) ==11529== by 0x929A621: FX::FXRootWindow::~FXRootWindow() (FXRootWindow.cpp:211) ==11529== by 0x9156DB9: FX::FXApp::~FXApp() (FXApp.cpp:4994) ==11529== by 0x84912F3: FXRbApp::~FXRbApp() (FXRbApp.cpp:118) ==11529== by 0x8491347: FXRbApp::~FXRbApp() (FXRbApp.cpp:127) ==11529== by 0x862EF8E: FXRbObject::freefunc(FX::FXObject*) (markfuncs.cpp:92) ==11529== by 0x4EA6254: finalize_list (gc.c:2944) ==11529== by 0x4EAAFC2: rb_gc_call_finalizer_at_exit (gc.c:3075) ==11529== by 0x4E9773B: ruby_cleanup (eval.c:101)
…or Ruby 1.9.3
…ng g++ as linker Don't include sys/time.h for cross compilation, this avoids the fix for incompatible types of gettimeofday()
…pp, FXComposite or FXWindow objects
… libtiff-4.0.1 libfox-1.6.45
Remove some comments, to only from C++ usable methods