egl/wayland: fix surface dma-buf feedback error exits
This fixes a leak that was introduced in 89d15b9a "egl/wayland: add initial dma-buf feedback support". Do not leak dri2_surf->wl_dmabuf_feedback when we have to bail out because of allocation issues. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13985>
This commit is contained in:
parent
81361490ef
commit
7c57346dfd
|
@ -722,10 +722,15 @@ dri2_wl_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf,
|
|||
&surface_dmabuf_feedback_listener,
|
||||
dri2_surf);
|
||||
|
||||
if (dmabuf_feedback_init(&dri2_surf->pending_dmabuf_feedback) < 0)
|
||||
if (dmabuf_feedback_init(&dri2_surf->pending_dmabuf_feedback) < 0) {
|
||||
zwp_linux_dmabuf_feedback_v1_destroy(dri2_surf->wl_dmabuf_feedback);
|
||||
goto cleanup_surf_wrapper;
|
||||
if (dmabuf_feedback_init(&dri2_surf->dmabuf_feedback) < 0)
|
||||
goto cleanup_pending_dmabuf_feedback;
|
||||
}
|
||||
if (dmabuf_feedback_init(&dri2_surf->dmabuf_feedback) < 0) {
|
||||
dmabuf_feedback_fini(&dri2_surf->pending_dmabuf_feedback);
|
||||
zwp_linux_dmabuf_feedback_v1_destroy(dri2_surf->wl_dmabuf_feedback);
|
||||
goto cleanup_surf_wrapper;
|
||||
}
|
||||
|
||||
if (roundtrip(dri2_dpy) < 0)
|
||||
goto cleanup_dmabuf_feedback;
|
||||
|
@ -748,7 +753,6 @@ dri2_wl_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf,
|
|||
if (dri2_surf->wl_dmabuf_feedback) {
|
||||
zwp_linux_dmabuf_feedback_v1_destroy(dri2_surf->wl_dmabuf_feedback);
|
||||
dmabuf_feedback_fini(&dri2_surf->dmabuf_feedback);
|
||||
cleanup_pending_dmabuf_feedback:
|
||||
dmabuf_feedback_fini(&dri2_surf->pending_dmabuf_feedback);
|
||||
}
|
||||
cleanup_surf_wrapper:
|
||||
|
|
Loading…
Reference in New Issue