* A problem has been found with QtRuby when it is run with Ruby 1.9.1
commit3796c362b74ed5880bd5d8794a4810e3edee3be0
authorrdale <rdale@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Mon, 16 Mar 2009 18:17:03 +0000 (16 18:17 +0000)
committerrdale <rdale@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Mon, 16 Mar 2009 18:17:03 +0000 (16 18:17 +0000)
tree88c19fb69189f5f3f1a14a12a449f0af92159771
parent18d10e1998f3c9e749bdc67ff4440ffabd6f5375
* A problem has been found with QtRuby when it is run with Ruby 1.9.1
  and GC.stess is true. Thanks to Davor Ocelic for reporting it.
  In the smokeruby_mark() function called during garbage collection,
  any virtual methods which are called on the instances being checked
  could have overriden by Ruby methods.  So the Wt::Ruby runtime uses
  'respond_to()' to find out whether they have been overriden.
  However, this involves calling 'rb_intern()' on the method name,
  which means memory could be allocated, giving an error when running under
  GC.stress mode. So workround it by pre-allocating any strings with
  rb_intern() for all the C++ methods used in smokeruby_mark()

git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebindings@940158 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
ruby/qtruby/ChangeLog
ruby/qtruby/bin/rbqtapi
ruby/qtruby/src/qtruby.cpp