[wxruby-users] GenericDirCtrl Bus Error crash on OSX

Alex Fenton alex at pressure.to
Mon Nov 10 19:36:47 EST 2008


Mathias Bruce wrote:
> In my program I use a GenericDirCtrl and handle its corresponding
> TreeCtrl item selection event with evt_tree_sel_changed.
> In the method handling this event, I try to get at the data of the
> selected item, but I run into this:
>
> ./my_xrcise_frames.rb:43: [BUG] Bus Error
> ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
>
> Abort trap
>
> The code for the event handling method is as follows, where
> gdc_browse_tree is the GenericDirCtrl instance:
>
> def on_browse_tree_sel_changed(tree_event)
>   item_id = tree_event.get_item
>   raise 'item_id was zero' if item_id == 0
>   tc = gdc_browse_tree.get_tree_ctrl
>   item_data = tc.get_item_data(item_id)
>   raise 'item_data was nil' if item_data == nil
> end
>   

Thanks for reporting this. I think it's a bug. In a normal Wx::TreeCtrl 
get_item_data works fine, but the item data held by a TreeCtrl 
associated with a GenericDirCtrl isn't a valid ruby object. We can fix 
this, and it would be helpful to understand what you were trying to do here.

Could you say what you expected to get from calling get_item_data here 
please? The GenericDirCtrl  already has methods (eg get_path, 
get_file_path) that will return the value of the currently selected 
directory.

BTW, it's very much appreciated if you can demonstrate a problem in a 
minimal, self-contained, runnable sample, rather than just a isolated 
snippet. That saves those looking into it having to guess how to 
reproduce the context of the problem.

thanks
alex


More information about the wxruby-users mailing list