SourceForge.net | 31 Jul 20:35
Favicon
Gravatar

[ swig-Bugs-2034216 ] SWIG's generated tracking code errors with Ruby 1.8.7 / 1.9

Bugs item #2034216, was opened at 2008-07-31 19:37
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2034216&group_id=1645

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: ruby
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Alex (bro_ken_toy)
Assigned to: Gonzalo Garramuno (gga73)
Summary: SWIG's generated tracking code errors with Ruby 1.8.7 / 1.9

Initial Comment:
SWIG's generated tracking code is not compatible with the latest ruby versions : 1.8.7 and 1.9

Specifically, during ruby's garbage collection phase, the function SWIG_RubyRemoveTracking may be
called, which in turn calls SWIG_RubyPtrToReference.

This converts a void* (ptr to the C++ object) to a ruby numeric corresponding to the pointer address, which
is then used as a ruby hash key. The pointer address may convert into a Ruby BigNum, which is a new object
allocation. As of Ruby 1.8.7 / Ruby 1.9 object allocation during GC phase is a bug and will crash out with an
error message.

For the time being we (wxRuby) have worked round this be re-implementing the tracking code using a HashMap
class from wxWidgets, but this isn't a general solution. This problem will affect any SWIG/Ruby project
that uses the tracking code.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2034216&group_id=1645

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

Gmane