Compare commits

...

1 Commits

Author SHA1 Message Date
Matthias Clasen
f40ad5f8b8 gpu: Handle image creation failure for cairo ops
Handle this like we do for textures: If we can't create the
image, just return NULL, and don't leak.
2024-01-11 06:23:10 -05:00

View File

@@ -459,14 +459,19 @@ gsk_gpu_upload_cairo_op (GskGpuFrame *frame,
GDestroyNotify user_destroy)
{
GskGpuUploadCairoOp *self;
GskGpuImage *image;
image = gsk_gpu_device_create_upload_image (gsk_gpu_frame_get_device (frame),
FALSE,
GDK_MEMORY_DEFAULT,
ceil (graphene_vec2_get_x (scale) * viewport->size.width),
ceil (graphene_vec2_get_y (scale) * viewport->size.height));
if (!image)
return NULL;
self = (GskGpuUploadCairoOp *) gsk_gpu_op_alloc (frame, &GSK_GPU_UPLOAD_CAIRO_OP_CLASS);
self->image = gsk_gpu_device_create_upload_image (gsk_gpu_frame_get_device (frame),
FALSE,
GDK_MEMORY_DEFAULT,
ceil (graphene_vec2_get_x (scale) * viewport->size.width),
ceil (graphene_vec2_get_y (scale) * viewport->size.height));
self->image = image;
self->viewport = *viewport;
self->func = func;
self->user_data = user_data;