| Summary: |
segfault in fill operation for an xcb surface created in c and wrapped with PycairoContext_FromContext |
| Product: |
pycairo
|
Reporter: |
Tom <hto> |
| Component: |
general | Assignee: |
Steve Chaplin <d74n5pohf9> |
| Status: |
RESOLVED
NOTABUG
|
QA Contact: |
|
| Severity: |
normal
|
|
|
| Priority: |
medium
|
|
|
| Version: |
unspecified | |
|
| Hardware: |
x86 (IA32) | |
|
| OS: |
All | |
|
| Whiteboard: |
|
|
i915 platform:
|
|
i915 features:
|
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
I create a valid cairo context in c (which I can use w/o errors) for an xcb surface. Then I wrap it via the Pycairo_CAPI like this: pcr = PycairoContext_FromContext(cr, NULL, NULL); In Python I do pcr.rectangle(0,0,10,10) pcr.fill() The fill operation triggers the following backtrace. I followed the execution path in pycairo and it doesn't seem to use anything unusual, meaning the same commands in c do not segfault. (gdb) bt #0 0xb7e98a1c in memcpy () from /lib/i686/cmov/libc.so.6 #1 0xb7aea285 in _get_image_surface (surface=0xb789f338, interest_rect=<value optimized out>, image_out=0xbfd12484, image_rect=0xbfd12520) at cairo-xcb-surface.c:412 #2 0xb7aea63a in _cairo_xcb_surface_acquire_dest_image (abstract_surface=0x8157258, interest_rect=0xbfd12514, image_out=0xbfd1251c, image_rect_out=0xbfd12520, image_extra=0xbfd12528) at cairo-xcb-surface.c:654 #3 0xb7abbbe0 in _cairo_surface_acquire_dest_image (surface=0x3374, interest_rect=0xbfd12514, image_out=0xbfd1251c, image_rect=0xbfd12520, image_extra=0xbfd12528) at cairo-surface.c:968 #4 0xb7abda38 in _fallback_init (state=0xbfd12510, dst=0x27100, x=13172, y=0, width=30, height=30) at cairo-surface-fallback.c:78 #5 0xb7abdd23 in _cairo_surface_fallback_fill_rectangles (surface=0x8157258, op=CAIRO_OPERATOR_OVER, color=0xbfd1310c, rects=0xbfd1259c, num_rects=1) at cairo-surface-fallback.c:1159 #6 0xb7abc0b1 in _cairo_surface_fill_rectangles (surface=0x8157258, op=CAIRO_OPERATOR_OVER, color=0xbfd1310c, rects=0xbfd1259c, num_rects=1) at cairo-surface.c:1314 #7 0xb7abc299 in _cairo_surface_fill_region (surface=0x8157258, op=CAIRO_OPERATOR_OVER, color=0xbfd1310c, region=0xbfd12f78) at cairo-surface.c:1262 #8 0xb7abf0ce in _clip_and_composite_trapezoids (src=<value optimized out>, op=<value optimized out>, dst=0x8157258, traps=0xbfd12fe4, clip=0x0, antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-surface-fallback.c:620 #9 0xb7abf35a in _cairo_surface_fallback_fill (surface=0x8157258, op=CAIRO_OPERATOR_OVER, source=0xbfd130b4, path=0x81a1a30, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-surface-fallback.c:907 #10 0xb7abca68 in _cairo_surface_fill (surface=0x8157258, op=CAIRO_OPERATOR_OVER, source=0xbfd1319c, path=0x81a1a30, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-surface.c:1456 #11 0xb7aafd33 in _cairo_gstate_fill (gstate=0x81a18e0, path=0x81a1a30) at cairo-gstate.c:1044 #12 0xb7aa87bc in *INT_cairo_fill_preserve (cr=0x81a18c0) at cairo.c:2098 #13 0xb7aa87e2 in cairo_fill (cr=0x81a18c0) at cairo.c:2074 #14 0xb7fc3d35 in ?? () from /usr/lib/python2.4/site-packages/cairo/_cairo.so #15 0x081a18c0 in ?? () #16 0xb7dc394c in ?? () #17 0xb7fcbfa0 in ?? () from /usr/lib/python2.4/site-packages/cairo/_cairo.so #18 0xb7e22040 in ?? () #19 0xb7e22040 in ?? () #20 0x00000000 in ?? ()