surface: don't unref the current buffer on failure
If wlr_buffer_create fails, keep the previous buffer.
@@ -296,15 +296,13 @@ static void surface_apply_damage(struct wlr_surface *surface) {
}
}
- wlr_buffer_unref(surface->buffer);
- surface->buffer = NULL;
-
struct wlr_buffer *buffer = wlr_buffer_create(surface->renderer, resource);
if (buffer == NULL) {
wlr_log(WLR_ERROR, "Failed to upload buffer");
return;
}
+ wlr_buffer_unref(surface->buffer);
surface->buffer = buffer;
}
