[cairo] Quartz regression in release 1.12

cu cairouser at yahoo.com
Sun Apr 8 11:52:09 PDT 2012

Dear all,

 There appear to be a few fairly severe bugs in Quartz surface when used on
iOS/ARM in 1.12 release. These issues do not exist in version 1.9.8.

1. Text rendering fails and results in invalid/empty surface.
   We use freetype to load font faces and subsequently
cairo_ft_font_face_create_for_ft_face(). We use Cairo's own text API
cairo_show_text() to output text. After any attempt to output text into Quartz
surface it becomes invalid.

2. Memory allocation (refcounting?) issues. Crashes either on freeing or
creating Quartz CGBitmap backed surface. When crashing on
cairo_surface_destroy(), the error is generally "freed memory was not
allocated", on some sort of cached pattern.

When crashing on creation of surface, the following shows up in the log:
<Error>: context_reclaim: invalid context 0x4f9840
<Error>: context_finalize: invalid context 0x4f9840
<Error>: context_reclaim: invalid context 0x42a820
<Error>: context_finalize: invalid context 0x42a820
malloc: *** error for object 0x42a824: incorrect checksum for freed object -
object was probably modified after being freed.

Specific addresses and locations may vary.

Cairo is configured to use pthreads and not to use "Intel atomic primitives"
(i.e. atomic operations are emulated by pthreads).

Any help with these issues would be greatly appreciated, as we'd like to switch
to 1.12 (1.9.8 has its own problems ).

More information about the cairo mailing list