Firstly, wxRuby 1.9.5 was built specifically for Ruby 1.8.6 p100ish,
around
that area, so with 1.8.7 p72, there are some major changes to the way
memory
is handled, and there by, it may be difficult to use older version of
wxRuby
with newer versionf of the Ruby interpreter.
Secondly, It is a Memory allocation issue. More specifically, somehow
wxRuby and Ruby are getting their objects mixed up. Every object that
you
create with wxRuby, is stored internally in the wxRuby library itself,
in an
Array if you would. This way, we can keep track of the instances of
objects, when there is re-direction.
By Re-directions, I mean when we need to get the control specifically,
for
an event that occured, we need to store this information somewhere,
where we
can look it up.
Now cause of this, somehow, wxRuby, or specifically wxWidgets is sending
an
instance of a control, that it knows to be valid, however, the event
handler
for calc_size(), which is part of Layout, that wxRuby attempts to parse,
can’t find the reference properly, and is returning some other Ruby
object
that it thinks it matched correctly. Therefore, we need to investigate
specifically on the C++ Layer, and on the SWIG Layer, why we are getting
invalid objects when it comes to Layout#calc_min.
Trust me, it’s extreemly hard to debug something like this. And to
track
down the source. It could actually be something that has nothing to do
with
the Memory tracking that we are doing, and in some other off-hand code
that
we are using to create objects. Simply put, we don’t know, but we are
researching the problem.
Please be patient with us.
thanks,
Mario