[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