[wxruby-users] Segfault with GridCellChoiceEditor

Glen Holcomb damnbigman at gmail.com
Tue Jul 29 09:28:15 EDT 2008


On Tue, Jul 29, 2008 at 4:37 AM, Alex Fenton <alex at pressure.to> wrote:

> Hi Glen
>
> Glen Holcomb wrote:
>
>> In my application I have a few Grid objects in a Notebook.  The Grid
>> objects are populated via GridTableBase.  Certain Grid cells need to have a
>> choice interface (I'm artificially enforcing foreign key constraints).  All
>> this works to the point where you try to edit the value for that cell.  The
>> choice box renders (i.e. the drop down arrow appears) then the application
>> segfaults.  Unfortunately I'm stuck developing this in a Windows (XP)
>> environment so I can't do much with the segfault.  Any help would be most
>> appreciated.
>>
> The problem here is the combination of GridTableBase and cell editors /
> renderers, which makes the memory management very tricky. It's noted as a
> bug here:
>
> http://rubyforge.org/tracker/index.php?func=detail&aid=19187&group_id=35&atid=218
>
> I don't know how to fix it in the library, but you should be able to work
> around it by storing the cell editor in an instance variable somewhere. Then
> ruby will mark it and preserve it from GC. From the code you posted on c.l.r
> (please do post code on this mailing list as well)
>
> def get_attr(row, col, attr_kind)
>  attr = Wx::GridCellAttr.new
>
>  if @db_table == "computers" and col == 4
>   ## INSTEAD OF THIS
>   # attr.set_editor(Wx::GridCellChoiceEditor.new(["CAD", "GIS", "CMT"]))
>   ## TRY THIS
>   @editors ||= []
>   @editors << Wx::GridCellChoiceEditor.new(["CAD", "GIS", "CMT"])
>   attr.set_editor(@editors.last)
>  end
>
>  attr
> end
>
> hth
> alex
>
>
>
>
> _______________________________________________
> wxruby-users mailing list
> wxruby-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/wxruby-users
>

Thanks Alex, I'll give that a shot and let you know how it turns out.

-- 
"Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can't hear a word you're saying."

-Greg Graffin (Bad Religion)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/wxruby-users/attachments/20080729/a12dc0f2/attachment-0001.html>


More information about the wxruby-users mailing list