summaryrefslogtreecommitdiff
path: root/src/cairo-recording-surface.c
diff options
context:
space:
mode:
authorHeiko Lewin <hlewin@gmx.de>2021-01-11 19:43:54 +0000
committerHeiko Lewin <hlewin@gmx.de>2021-01-11 19:43:54 +0000
commite45875142fc5d0bb7968b150f379172130415342 (patch)
treea2cceef592fef381e86ce097b02f4243e01706b4 /src/cairo-recording-surface.c
parent891468f191cccc80b8e491318e0646a7fffa22bf (diff)
parent66c9911850257b2d42a6abf756baed16fe1ae9d5 (diff)
downloadcairo-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.c5
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;