buffer: improve error handling

In case the texture can't be imported, release the buffer so that the
client can submit another one. In case the allocation fails, disconnect
the client.
master
Simon Ser 5 years ago committed by Drew DeVault
parent efd294ef09
commit 96e8e9b098

@ -96,12 +96,14 @@ struct wlr_buffer *wlr_buffer_create(struct wlr_renderer *renderer,
if (texture == NULL) { if (texture == NULL) {
wlr_log(WLR_ERROR, "Failed to upload texture"); wlr_log(WLR_ERROR, "Failed to upload texture");
wl_buffer_send_release(resource);
return NULL; return NULL;
} }
struct wlr_buffer *buffer = calloc(1, sizeof(struct wlr_buffer)); struct wlr_buffer *buffer = calloc(1, sizeof(struct wlr_buffer));
if (buffer == NULL) { if (buffer == NULL) {
wlr_texture_destroy(texture); wlr_texture_destroy(texture);
wl_resource_post_no_memory(resource);
return NULL; return NULL;
} }
buffer->resource = resource; buffer->resource = resource;

Loading…
Cancel
Save