[cairo] Crash with 1.4.4
Carl Worth
cworth at cworth.org
Wed Apr 18 22:16:04 PDT 2007
On Wed, 18 Apr 2007 22:54:44 -0500 (CDT), "Jordan Miner" wrote:
> put in printfs to narrow it down. I found that it is crashing in
> cairo-pattern.c in _cairo_pattern_create_solid on the line:
>
> CAIRO_MUTEX_LOCK (_cairo_pattern_solid_cache_lock);
We had a couple of similar reports in IRC. What happened was that with
previous releases we had kept forgetting to manually add new mutexes
to a win32-specific list, so the win32 build kept breaking.
We tried to fix this by centralizing all the mutex declarations to a
single list, but clearly we botched the implementation.
> _cairo_mutex_initialized is false.
Thanks for the clue. Here's the bug:
void _cairo_mutex_initialize (void)
{
if (_cairo_mutex_initialized)
return;
#define CAIRO_MUTEX_DECLARE(mutex) CAIRO_MUTEX_INIT (mutex);
#include "cairo-mutex-list-private.h"
#undef CAIRO_MUTEX_DECLARE
}
Note that we're testing _cairo_mutex_initialized but never setting
it. Oops! And presumably these mutex objects don't like being
initialized over and over again.
As soon as someone can report a tested fix, that would be great.
And in the future, if we can get more pre-release testing on win32
hopefully we can better avoid problems like this, (a mingw version of
git looks very viable these days, so that should help). I can also
provide plenty of warning and early tar files to anyone who would want
to pre-screen release tar files for us.
Thanks, and sorry about this one. I really should have noticed that.
-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20070418/84c8e6fa/attachment-0001.pgp
More information about the cairo
mailing list