[Kde-bindings] Ruby bindings 4.4 regressions

Richard Dale rdale at foton.es
Thu Jan 28 12:17:42 UTC 2010


On Wednesday 27 January 2010 11:18:47 pm David Palacio wrote:
> Here is a list of regressions/crashes for the 4.4 branch.
> 
> QVariant:
> This one is known for some time. Methods that take them no longer accept
> implicit conversions. Though this feature was not properly implemented in
>  the past.
Well the overloaded method resolution code and MethodCall class in the JSmoke 
bindings now handle implicit type conversion of arguments in a completely 
general way, not just for QVariants, but for all types. It can match 
constructor methods like 'QVariant::QVariant(bool)' as well as operator 
methods like 'operator QBrush()'. It needs no change to the Smoke libs, and 
shouldn't slow down normal method calls which don't need implicit type 
conversions. The format of the resolved method call is a QVector of 
Smoke::ModuleIndexs, and it should be possible to cache those in the QtRuby 
method selector cache.

So what I really want to do is to port that code to QtRuby for release with 
KDE 4.5. For KDE 4.4 you've posted a list of which methods need special casing 
to handle conversions to QVariants, and there are quite a lot of them. But we 
could implement that as a temporary measure is there is time.

> Ruboids:
> Every ruby plasmoid crashes plasma or the plasmoid viewer. Backtraces may
> differ.
I haven't even tried Plasma yet. It is possible that it is the same casting 
problem that Stefano had with the actionCollection() method, as the 
QGraphicsView classes have multiple inheritance.

> Constants on modules:
> KIO::NoReload,  KIO::HideProgressInfo for example, are not resolved in 4.4.
I've just added KIO to the list of classes for the KIO Smoke lib in the 
smokeconfig.xml file, and I'll see if that fixes it.

-- Richard




More information about the Kde-bindings mailing list