Bug 308231 - qtruby: Qt::Variant.fromValue broken on ruby 1.9 (might also be a more generic method resolution problem)
Summary: qtruby: Qt::Variant.fromValue broken on ruby 1.9 (might also be a more generi...
Status: RESOLVED WORKSFORME
Alias: None
Product: bindings
Classification: Developer tools
Component: general (show other bugs)
Version: 4.8
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: kde-bindings
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-11 11:46 UTC by Sylvain Joyeux
Modified: 2022-12-21 05:18 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sylvain Joyeux 2012-10-11 11:46:53 UTC
I am using the Qt bindings from the qtbindings gem version 4.8.3, on ruby 1.9.3.

Qt::Variant.fromValue(Qt::Object.new) fails with ruby ruby 1.9.3p0 (2011-10-30 revision 33570) on Ubuntu 12.04.1. It is working with ruby 1.8 and the ruby-qt4 package from the same distribution.

Turning rb_protect off in qvariant_from_value, I get the following backtrace (with it, the error is completely useless for whatever reason ...):

/home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2823:in `get_qinteger': undefined method `value' for #<Object:0x00000001b352d0> (NoMethodError)
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2241:in `initialize'
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2241:in `initialize'
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2639:in `call'
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2639:in `block in try_initialize'
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2638:in `catch'
from /home/doudou/dev/virgo/.gems/gems/qtbindings-4.8.3.0/lib/Qt/qtruby4.rb:2638:in `try_initialize'

This breaks the creation of the QVariant, as the qtruby code assumes that we are giving a "pure" ruby object if it gets an ArgumentError (not a NoMethodError). Turning on debug output, I then get the following output:

Searching for QVariant#QVariant
Munged method names:
QVariant$
candidate list:
QVariant* QVariant::QVariant(QVariant::Type) (smoke: 0 index: 5442)
QVariant* QVariant::QVariant(int) (smoke: 0 index: 5447)
QVariant* QVariant::QVariant(unsigned int) (smoke: 0 index: 5448)
QVariant* QVariant::QVariant(long long) (smoke: 0 index: 5449)
QVariant* QVariant::QVariant(unsigned long long) (smoke: 0 index: 5450)
QVariant* QVariant::QVariant(bool) (smoke: 0 index: 5451)
QVariant* QVariant::QVariant(double) (smoke: 0 index: 5452)
QVariant* QVariant::QVariant(float) (smoke: 0 index: 5453)
QVariant* QVariant::QVariant(const QString&) (smoke: 0 index: 5456)
QVariant* QVariant::QVariant(Qt::GlobalColor) (smoke: 0 index: 5478)
matching => smoke: 0 index: 5442
QVariant::Type (U) score: 2
match => smoke: 0 index: 5442 score: 2 chosen: 5442
matching => smoke: 0 index: 5447
int (U) score: 2
****** warning: multiple methods with the same score of 2: 5442 and 5447
match => smoke: 0 index: 5447 score: 2 chosen: 5447
matching => smoke: 0 index: 5448
unsigned int (U) score: 2
****** warning: multiple methods with the same score of 2: 5447 and 5448
match => smoke: 0 index: 5448 score: 2 chosen: 5448
matching => smoke: 0 index: 5449
long long (U) score: 2
****** warning: multiple methods with the same score of 2: 5448 and 5449
match => smoke: 0 index: 5449 score: 2 chosen: 5449
matching => smoke: 0 index: 5450
unsigned long long (U) score: 2
****** warning: multiple methods with the same score of 2: 5449 and 5450
match => smoke: 0 index: 5450 score: 2 chosen: 5450
matching => smoke: 0 index: 5451
bool (U) score: 2
****** warning: multiple methods with the same score of 2: 5450 and 5451
match => smoke: 0 index: 5451 score: 2 chosen: 5451
matching => smoke: 0 index: 5452
double (U) score: 2
****** warning: multiple methods with the same score of 2: 5451 and 5452
match => smoke: 0 index: 5452 score: 2 chosen: 5452
matching => smoke: 0 index: 5453
float (U) score: 2
****** warning: multiple methods with the same score of 2: 5452 and 5453
match => smoke: 0 index: 5453 score: 2 chosen: 5453
matching => smoke: 0 index: 5456
const QString& (U) score: 1
match => smoke: 0 index: 5456 score: 1 chosen: 5453
matching => smoke: 0 index: 5478
Qt::GlobalColor (U) score: 2
****** warning: multiple methods with the same score of 2: 5453 and 5478
match => smoke: 0 index: 5478 score: 2 chosen: 5478

This look very wrong as none of the constructors should match, or I am missing something

Reproducible: Always

Steps to Reproduce:
ruby -rQt4 -e 'Qt::Variant.new(Object.new)
Comment 1 Justin Zobel 2022-11-06 09:25:17 UTC
Thank you for reporting this issue in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the issue with a recent software version?

If you can reproduce the issue, please change the status to "REPORTED" when replying. Thank you!
Comment 2 Bug Janitor Service 2022-11-21 05:12:02 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Mathieu Jobin 2022-11-21 07:41:05 UTC
I don't know what is the point asking for more info on this bug?
KDE bindings are mostly unmaintained. especially ruby one.
its impossible to retest this with latest KDE.

I understand we want to reduce noise when looking at bug reports and feature requests for a product that is maintained.
but if we close this one, might as well close all ruby/KDE bindings ticket as unmaintained.
Comment 4 Bug Janitor Service 2022-12-06 05:16:16 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2022-12-21 05:18:48 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!