diff options
author | Heiko Lewin <hlewin@gmx.de> | 2021-01-11 19:43:54 +0000 |
---|---|---|
committer | Heiko Lewin <hlewin@gmx.de> | 2021-01-11 19:43:54 +0000 |
commit | e45875142fc5d0bb7968b150f379172130415342 (patch) | |
tree | a2cceef592fef381e86ce097b02f4243e01706b4 /src/cairo-recording-surface.c | |
parent | 891468f191cccc80b8e491318e0646a7fffa22bf (diff) | |
parent | 66c9911850257b2d42a6abf756baed16fe1ae9d5 (diff) | |
download | cairo-e45875142fc5d0bb7968b150f379172130415342.tar.gz |
Merge branch 'snapshot-error-fixes' into 'master'
Slightly improve dealing with error snapshots
See merge request cairo/cairo!92
Diffstat (limited to 'src/cairo-recording-surface.c')
-rw-r--r-- | src/cairo-recording-surface.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cairo-recording-surface.c b/src/cairo-recording-surface.c index 144fa9745..a65f84e45 100644 --- a/src/cairo-recording-surface.c +++ b/src/cairo-recording-surface.c @@ -1784,6 +1784,11 @@ _cairo_recording_surface_merge_source_attributes (cairo_recording_surface_t *su if (_cairo_surface_is_snapshot (surf)) free_me = surf = _cairo_surface_snapshot_get_target (surf); + if (unlikely (surf->status)) + // There was some kind of error and the surface could be a nil error + // surface with various "problems" (e.g. ->backend == NULL). + return; + if (surf->type == CAIRO_SURFACE_TYPE_RECORDING) { cairo_recording_surface_t *rec_surf = (cairo_recording_surface_t *) surf; |