[cairo-bugs] [Bug 9906] evolution crash to
_cairo_gstate_backend_to_user()
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Mar 2 03:54:04 PST 2007
http://bugs.freedesktop.org/show_bug.cgi?id=9906
cworth at cworth.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Comment #2 from cworth at cworth.org 2007-03-02 03:53 PST -------
(In reply to comment #1)
> Could you break on _cairo_error which should show you where the INVALID_RESTORE
> is first happening, and then step through to see how you're getting from there
> to the crash?
Oh, never mind. It's clear enough from the existing backtrace already. Any
INVALID_RESTORE condition was leaving a NULL gstate and almost any cairo_get_*
call would dererference that and trigger the crash.
I augmented cairo's test suite to exercise the crash, then I fixed the bug.
You can see the commit I just pushed out here:
http://gitweb.freedesktop.org/?p=cairo;a=commitdiff;h=6da7f140334835be9a972db75de78d99b8bd24b1
This is currently available in cairo 1.3.15 as made available in git, and will
be pushed out very shortly in the cairo 1.4 release.
Meanwhile, there's still a bug in evolution somewhere that's leading to the
INVALID_RESTORE in the first place, (that is, calling cairo_restore without a
matching call to cairo_save). This fix will prevent the crash, and will instead
replace it with cairo simply refusing to draw anything after the invalid
restore state. So you'll still want to fix that.
-Carl
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
More information about the cairo-bugs
mailing list