goocanvas.Widget segfault
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pygoocanvas |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Using goocanvas.Widget result in a segfault, gdb backtrace:
gdb> run testwidget.py
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1211132224 (LWP 3664)]
testwidget.py:35: GtkWarning: gdk_cairo_create: assertion `GDK_IS_DRAWABLE (drawable)' failed
window.show_all ()
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211132224 (LWP 3664)]
_______
eax:00000000 ebx:B704E5EC ecx:B704E5EC edx:00000000 eflags:00200286
esi:00000000 edi:00000000 esp:BFFD9E00 ebp:BFFD9E28 eip:B74FADEF
cs:0073 ds:007B es:007B fs:0000 gs:0033 ss:007B o d I t S z a P c
[007B:BFFD9E00]
BFFD9E30 : 00 00 00 00 00 00 00 00 - 00 00 00 40 EC E5 04 B7 ...........@....
BFFD9E20 : EC E5 04 B7 50 50 18 08 - 48 9E FD BF D0 51 04 B7 ....PP..H....Q..
BFFD9E10 : 8E 2C 63 B7 04 2E 63 B7 - 68 2E 63 B7 EC E5 04 B7 .,c...c.h.c.....
BFFD9E00 : 8C 64 65 B7 00 00 00 00 - 28 9E FD BF 8D 5E 5E B7 .de.....(....^^.
[007B:BFFD9E00]
BFFD9E00 : 8C 64 65 B7 00 00 00 00 - 28 9E FD BF 8D 5E 5E B7 .de.....(....^^.
BFFD9E10 : 8E 2C 63 B7 04 2E 63 B7 - 68 2E 63 B7 EC E5 04 B7 .,c...c.h.c.....
[0073:B74FADEF]
0xb74fadef <cairo_
0xb74fadf2 <cairo_
0xb74fadf4 <cairo_
0xb74fadf6 <cairo_
0xb74fadf9 <cairo_
0xb74fadfc <cairo_
-------
0xb74fadef in cairo_set_
The bug is goocanvas, not pygoocanvas: goocanvas doesn't like embedding widgets before the canvas widget is realized. You can work around it by changing the test program slightly.