[Kde-bindings] Another segfault yet, but more complex

Han Holl han.holl at pobox.com
Tue Oct 5 18:13:05 UTC 2004


Hello Richard,

I'vr got another segfault for you, but I haven't succeeded in creating a 
_very_ simple script to demonstrate.

I've investigated somewhat myself, and added debugging information around the 
call to checkarg, like this:

(0...args.length).each do |i|
    tmp = checkarg( getVALUEtype(args[i]), getTypeNameOfArg(id, i) )
    puts "ISCORE: #{i} #{tmp} #{args[i]} #{getVALUEtype(args[i])}        	  
#{getTypeNameOfArg(id, i)}" if debug_level >= DebugLevel::High
   current_match += tmp
end

(Sorry for the lousy formatting). Anyway, what happens is that at some point I 
get this output:
ISCORE: 0 -99 #<Qt::Widget:0x43230f68> QObject QWidget*

which means that even though the object args[i] is Qt::Widget:0x43230f68, 
getVALUEtype(args[i]) returns QObject (instead of QWidget).
What happens then that checharg return -99, and a segfault.

I've prepared an archive which hopefully runs standalone. Because it turns out 
to be only 7kb I've attached it directly to this post.

I hope you can find out what's happening.

Cheers,

Han Holl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ccc.tgz
Type: application/x-tgz
Size: 7737 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20041005/1d474802/attachment.bin>


More information about the Kde-bindings mailing list