Merge branch 'cglayer-retain' into 'master'

Explicitly retain our reference to the pattern surface's CGLayer

See merge request cairo/cairo!362
This commit is contained in:
Jonathan Kew 2025-09-16 18:48:18 +00:00
commit 032df9c6ae

View file

@ -970,6 +970,7 @@ _cairo_quartz_setup_pattern_source (cairo_quartz_drawing_state_t *state,
_cairo_quartz_cairo_matrix_to_quartz (&m, &state->transform);
state->rect = CGRectMake (0, 0, quartz_surf->extents.width, quartz_surf->extents.height);
state->layer = quartz_surf->cgLayer;
CGLayerRetain (state->layer); // Will be released by _cairo_quartz_teardown_state
state->action = DO_LAYER;
return CAIRO_STATUS_SUCCESS;
}
@ -1138,7 +1139,6 @@ _cairo_quartz_setup_state (cairo_quartz_drawing_state_t *state,
state->shading = NULL;
state->cgDrawContext = NULL;
state->cgMaskContext = NULL;
state->layer = NULL;
status = _cairo_surface_clipper_set_clip (&surface->clipper, clip);
if (unlikely (status))