mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 15:48:00 +02:00
snapshot: Assert that we do not generate a snapshot clone
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
161836ab49
commit
47874aacea
2 changed files with 4 additions and 5 deletions
|
|
@ -172,10 +172,8 @@ _analyze_recording_surface_pattern (cairo_analysis_surface_t *surface,
|
|||
|
||||
if (_cairo_surface_is_snapshot (source))
|
||||
source = _cairo_surface_snapshot_get_target (source);
|
||||
if (source->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) {
|
||||
cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) source;
|
||||
source = sub->target;
|
||||
}
|
||||
if (_cairo_surface_is_subsurface (source))
|
||||
source = _cairo_surface_subsurface_get_target (source);
|
||||
|
||||
status = _cairo_recording_surface_replay_and_create_regions (source, &tmp->base);
|
||||
detach_proxy (proxy);
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ _cairo_surface_snapshot_copy_on_write (cairo_surface_t *surface)
|
|||
|
||||
done:
|
||||
status = _cairo_surface_set_error (surface, clone->status);
|
||||
assert (! _cairo_surface_is_snapshot (clone));
|
||||
snapshot->target = snapshot->clone = clone;
|
||||
snapshot->base.type = clone->type;
|
||||
}
|
||||
|
|
@ -195,7 +196,7 @@ _cairo_surface_snapshot (cairo_surface_t *surface)
|
|||
if (surface->snapshot_of != NULL)
|
||||
return cairo_surface_reference (surface);
|
||||
|
||||
if (surface->backend == &_cairo_surface_snapshot_backend)
|
||||
if (_cairo_surface_is_snapshot (surface))
|
||||
return cairo_surface_reference (surface);
|
||||
|
||||
snapshot = (cairo_surface_snapshot_t *)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue