Manage GC'ing of FXTreeItem the same way as for FXFolderItem.
This fixes issue #10. Stacktrace was: ==4561== Invalid read of size 8 ==4561== at 0x4F726FF: st_lookup (st.c:414) ==4561== by 0x4FCEAD6: rb_method_entry_get_without_cache (vm_method.c:182) ==4561== by 0x4FD94E5: rb_funcall (vm_eval.c:315) ==4561== by 0x810DAF2: FXRbCallVoidMethod(FX::FXObject*, unsigned long) (in /home/lars/.rvm/gems/ruby-2.0.0-p247/gems/fxruby-1.6.28/lib/fox16_c.so) ==4561== by 0x81AC98E: FXRbTreeList::recalc() (in /home/lars/.rvm/gems/ruby-2.0.0-p247/gems/fxruby-1.6.28/lib/fox16_c.so) ==4561== by 0x8FC78DC: FX::FXTreeList::removeItems(FX::FXTreeItem*, FX::FXTreeItem*, unsigned char) (FXTreeList.cpp:2340) ==4561== by 0x8FC7916: FX::FXTreeList::removeItem(FX::FXTreeItem*, unsigned char) (FXTreeList.cpp:2347) ==4561== by 0x829ED0F: FXRbTreeItem::freefunc(FX::FXTreeItem*) (in /home/lars/.rvm/gems/ruby-2.0.0-p247/gems/fxruby-1.6.28/lib/fox16_c.so) ==4561== by 0x4EBA505: finalize_list (gc.c:1415) ==4561== by 0x4EC15A3: rb_gc_call_finalizer_at_exit (gc.c:1552) ==4561== by 0x4EA8064: ruby_cleanup (eval.c:127) ==4561== by 0x4EA8292: ruby_run_node (eval.c:307) ==4561== Address 0x74fb894853ff8550 is not stack'd, malloc'd or (recently) free'd ==4561== segfault_on_close.rb: [BUG] Segmentation fault
Showing
- ext/fox16_c/include/FXRbTreeList.h 3 additions, 3 deletionsext/fox16_c/include/FXRbTreeList.h
- ext/fox16_c/markfuncs.cpp 3 additions, 22 deletionsext/fox16_c/markfuncs.cpp
- ext/fox16_c/unregisterOwnedObjects.cpp 1 addition, 2 deletionsext/fox16_c/unregisterOwnedObjects.cpp
- swig-interfaces/FXFoldingList.i 6 additions, 6 deletionsswig-interfaces/FXFoldingList.i
- swig-interfaces/FXTreeList.i 18 additions, 32 deletionsswig-interfaces/FXTreeList.i
Loading
Please register or sign in to comment