summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Wick <sebastian.wick@redhat.com>2023-03-27 21:52:19 +0200
committerLeandro Ribeiro <leandrohr@riseup.net>2023-04-20 11:42:15 +0000
commit57cba6afb47d375fb8353e4e79d1cc6dbc6f92a4 (patch)
tree9efd6537d3866309e7a9acc64f0663e542655613
parentaf4fb2b9f6cd5736cbe7e1af2c8c14c27794ef08 (diff)
downloadweston-57cba6afb47d375fb8353e4e79d1cc6dbc6f92a4.tar.gz
clients/simple-dmabuf-feedback: fix dangling pointers
to presentation feedback objects. Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
-rw-r--r--clients/simple-dmabuf-feedback.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/clients/simple-dmabuf-feedback.c b/clients/simple-dmabuf-feedback.c
index 0f058fe5..e6832dab 100644
--- a/clients/simple-dmabuf-feedback.c
+++ b/clients/simple-dmabuf-feedback.c
@@ -682,8 +682,10 @@ redraw(void *data, struct wl_callback *callback, uint32_t time)
window->callback = wl_surface_frame(window->surface);
wl_callback_add_listener(window->callback, &frame_listener, window);
- if (window->presentation_feedback)
+ if (window->presentation_feedback) {
wp_presentation_feedback_destroy(window->presentation_feedback);
+ window->presentation_feedback = NULL;
+ }
if (window->display->presentation) {
window->presentation_feedback =
wp_presentation_feedback(window->display->presentation,
@@ -735,12 +737,15 @@ static void presentation_feedback_handle_presented(void *data,
window->presented_zero_copy = zero_copy;
wp_presentation_feedback_destroy(feedback);
+ window->presentation_feedback = NULL;
}
static void presentation_feedback_handle_discarded(void *data,
struct wp_presentation_feedback *feedback)
{
+ struct window *window = data;
wp_presentation_feedback_destroy(feedback);
+ window->presentation_feedback = NULL;
}
static const struct wp_presentation_feedback_listener presentation_feedback_listener = {