diff options
author | Jonathan Kew <jfkthame@gmail.com> | 2021-07-08 15:33:50 +0100 |
---|---|---|
committer | Jonathan Kew <jfkthame@gmail.com> | 2021-07-23 15:19:05 +0100 |
commit | 2d488b35966af90474eed8fb2f8f1255cb7a1f88 (patch) | |
tree | 62b4bc9da6077729022cff7139838cb1704c09e6 /src/cairo-recording-surface.c | |
parent | b408352d450bb8c1b1cc17b14e0d605dc40daaed (diff) | |
download | cairo-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.c | 4 |
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; |