FXRuby problems... segmentation fault

I've been trying to code up a GUI for manipulating rather large CSV files using FXRuby (1.2.2) with FOX version 1.2.13, and ruby 1.8.2. My interface uses MDI documents, each child window of which contains a FXTabBook, with each Tab containing a FXTable that can be 20,000 items or more. The problem is, as I close MDIChild windows, and open new ones, I sometimes get a segfault. As a test, I took the example code distributed with FXRuby, mditest.rb, and modified it to behave somewhat like my code, and I get similar behaviour. Basically, I modified the createTestWindow method in mditest.rb to be as below. If I run this program, and then repeatedly close and open new windows (while this doesn't seem like "sensible" behaviour, the bug is prevalent enough to happen in normal operation, as well), I get a segfault. This seems to me like a dead memory area issue, but I'm not sure how to ensure th
at certain objects are destroyed before others with FXRuby. Any suggestions on what the pr
oblem might be, or what I might be able to do to further diagnose it?

  def createTestWindow(x, y, w, h)
    mdichild = FXMDIChild.new(@mdiclient, "Child", nil, nil,0, x, y, w, h)
    scrollwindow = FXScrollWindow.new(mdichild, 0)
    scrollwindow.verticalScrollBar.setLine(@font.fontHeight)
    tbl = FXTable.new(scrollwindow, nil, 0, TABLE_COL_SIZABLE|TABLE_ROW_SIZABLE|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 2, 2, 2, 2)
    tbl.setTableSize(200,200)
    (0...200).each { |c|
      tbl.setColumnText(c,c.to_s)
    }
    (0...200).each { |r|
      tbl.setRowText(r,r.to_s)
    }
    (0...200).each { |r|
      (0...200).each { |c|
        tbl.setItemText(r,c,"#{r},#{c}")
      }
    }
    mdichild
  end

I've added this one to the FXRuby bug list, here:

    http://rubyforge.org/tracker/index.php?func=detail&aid=1445&group_id=300&atid=1223

and will try to look into it this weekend.

···

On Sat, 5 Feb 2005 05:43:52 +0900, PATRICK FERNIE <tambooki@jhu.edu> wrote:

I've been trying to code up a GUI for manipulating rather large CSV files using FXRuby...