[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