[RQt-devel] recent smoke update
    Deepayan Sarkar 
    deepayan.sarkar at gmail.com
       
    Sun Jan 17 19:24:14 CET 2010
    
    
  
On Sun, Jan 17, 2010 at 7:32 AM, Michael Lawrence
<lawrence.michael at gene.com> wrote:
> Unfortunately, I can't seem to reproduce the error, only the segfault. Btw,
> your test code is off by 1 (so the error is happening on the first
> iteration). It's also weird how the segfault is so predictable (it crashes
> somewhere between 400 and 500 on my machine too).
Yes, the segfault is quite predictable (although not quite 100%), and
happens much earlier if I include a gc() call. Here's a variation:
----Code:
library(qtbase)
i <- 1L
while (TRUE) {
    gc()
    pen <- Qt$QPen(Qt$QColor(10L, 20L, 10L))
    message(i, "\t", capture.output(print(pen))[1], "\t", class(pen)[1])
    i <- i + 1L
}
----Typical output:
1       <environment: 0x141e530>        QPen
2       <environment: 0x1f75788>        QColor
3       <environment: 0x1f758d8>        QPen
4       <environment: 0x1f75868>        QColor
5       <environment: 0x1f757f8>        QColor
6       <environment: 0x1f75868>        QColor
7       <environment: 0x1f757f8>        QColor
 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
----
Note the wrongly reported QColor. Taking the diff() of the pointer
addresses is interesting:
> diff(c(0x141e530, 0x1f75788, 0x1f758d8, 0x1f75868, 0x1f757f8, 0x1f75868, 0x1f757f8))
[1] 11891288      336     -112     -112      112     -112
The numbers 336 and 112 recur.
> Are you saying that this is a regression? I can't install the old version,
> because it's broken for Qt 4.6.
I had thought so, but it's not. I get similar behavior with an older version.
Somehow the QColor seems important. If I just use
pen <- Qt$QPen()
then things seem stabler (it doesn't segfault, though it sometimes
gives an error).
-Deepayan
    
    
More information about the Qtinterfaces-devel
mailing list