Summary: | Inkscape crashes with "Assertion failed", " ! surface->unbounded" when printing | ||
---|---|---|---|
Product: | cairo | Reporter: | Eduard Braun <eduard.braun2> |
Component: | win32 backend | Assignee: | cairo-bugs mailing list <cairo-bugs> |
Status: | RESOLVED MOVED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
patch which fixes printing on win32 and avoids the unbounded surface assertion error
patch v2 |
Description
Eduard Braun
2017-07-18 23:35:43 UTC
Created attachment 132752 [details] [review] patch which fixes printing on win32 and avoids the unbounded surface assertion error Adrian, could you comment on this? I don't understand the attached patch nor https://cgit.freedesktop.org/cairo/commit/?id=90d50cd92315d6760069ad8062aba5e297370b20 __cairo_surface_is_recording checks if surface->backend->type is CAIRO_SURFACE_TYPE_RECORDING while both patches check surface->type instead. Why/how do we end up having recording surfaces which have a non-recording backend? Why does _cairo_surface_is_recording not recognize them? Wouldn't it be better to fix this function instead? Patch looks goods. From memory it was something to do with cairo_surface_is_recording() not recognizing snapshots of recordings as a recording surface. Thanks for review! In this case I feel safe to use a patched build of cairo until this makes it into a release. I found one additional use of _cairo_surface_is_recording in function surface_pattern_supported: https://cgit.freedesktop.org/cairo/tree/src/win32/cairo-win32-printing-surface.c#n338 Should this one be patched, too, then? > I found one additional use of _cairo_surface_is_recording in function
> surface_pattern_supported:
> https://cgit.freedesktop.org/cairo/tree/src/win32/cairo-win32-printing-
> surface.c#n338
> Should this one be patched, too, then?
I think so. I don't have a windows build environment setup to test it.
Created attachment 133001 [details] [review] patch v2 So here's the patch with both occurrences replaced. Is there anything else I can do on my end at this time? I am still curious about the questions Uli mentioned in comment #2. If the backend for the snapshotted surface is not CAIRO_SURFACE_TYPE_RECORDING, what is it? Would it be possible to fix _cairo_surface_is_recording to properly test for that? -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/131. |
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.