summaryrefslogtreecommitdiff
path: root/src/cairo-recording-surface.c
diff options
context:
space:
mode:
authorJonathan Kew <jfkthame@gmail.com>2021-07-08 15:33:50 +0100
committerJonathan Kew <jfkthame@gmail.com>2021-07-23 15:19:05 +0100
commit2d488b35966af90474eed8fb2f8f1255cb7a1f88 (patch)
tree62b4bc9da6077729022cff7139838cb1704c09e6 /src/cairo-recording-surface.c
parentb408352d450bb8c1b1cc17b14e0d605dc40daaed (diff)
downloadcairo-2d488b35966af90474eed8fb2f8f1255cb7a1f88.tar.gz
Don't assert on NOTHING_TO_DO during recording replay.
Diffstat (limited to 'src/cairo-recording-surface.c')
-rw-r--r--src/cairo-recording-surface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cairo-recording-surface.c b/src/cairo-recording-surface.c
index a20e72d60..86caf9029 100644
--- a/src/cairo-recording-surface.c
+++ b/src/cairo-recording-surface.c
@@ -1993,6 +1993,10 @@ _cairo_recording_surface_replay_internal (cairo_recording_surface_t *surface,
ASSERT_NOT_REACHED;
}
+ /* It's possible that a degenerate clip caused the command to end up doing nothing when replayed. */
+ if (unlikely (status == CAIRO_INT_STATUS_NOTHING_TO_DO))
+ status = CAIRO_INT_STATUS_SUCCESS;
+
if (type == CAIRO_RECORDING_CREATE_REGIONS && command->header.region != CAIRO_RECORDING_REGION_NATIVE) {
if (status == CAIRO_INT_STATUS_SUCCESS) {
command->header.region = CAIRO_RECORDING_REGION_NATIVE;