mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-06-07 01:48:20 +02:00
drm/i915: Free potential leak of cloned textures.
This commit is contained in:
parent
913a31494e
commit
597dd24ddc
1 changed files with 6 additions and 0 deletions
|
|
@ -1362,6 +1362,7 @@ i915_shader_acquire_surface (i915_shader_t *shader,
|
|||
cairo_filter_t filter;
|
||||
cairo_matrix_t m;
|
||||
int src_x = 0, src_y = 0;
|
||||
cairo_surface_t *free_me = NULL;
|
||||
cairo_status_t status;
|
||||
|
||||
assert (src->type.fragment == (i915_fragment_shader_t) -1);
|
||||
|
|
@ -1501,6 +1502,8 @@ i915_shader_acquire_surface (i915_shader_t *shader,
|
|||
_cairo_surface_release_source_image (surface, image, image_extra);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
free_me = &s->intel.drm.base;
|
||||
}
|
||||
|
||||
src->type.fragment = FS_TEXTURE;
|
||||
|
|
@ -1558,6 +1561,9 @@ i915_shader_acquire_surface (i915_shader_t *shader,
|
|||
cairo_matrix_init_scale (&m, 1. / surface_width, 1. / surface_height);
|
||||
cairo_matrix_multiply (&src->base.matrix, &src->base.matrix, &m);
|
||||
|
||||
if (free_me != NULL)
|
||||
cairo_surface_destroy (free_me);
|
||||
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue