aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Primak <vyivel@posteo.net>2021-10-14 22:32:40 +0300
committerSimon Ser <contact@emersion.fr>2021-10-15 09:38:58 +0200
commit1089b7b8d638a286c70571fced969826d61143bc (patch)
treeb53723aacfda81f42cee90393cf634e82d3a3e1d
parent1b65a80e9d87a5107fadcced397ed231703d039e (diff)
output: disallow NULL event for wlr_output_send_present()
-rw-r--r--backend/headless/output.c5
-rw-r--r--backend/wayland/output.c10
-rw-r--r--types/wlr_output.c7
3 files changed, 13 insertions, 9 deletions
diff --git a/backend/headless/output.c b/backend/headless/output.c
index 8c7e57f1..8351c935 100644
--- a/backend/headless/output.c
+++ b/backend/headless/output.c
@@ -64,7 +64,10 @@ static bool output_commit(struct wlr_output *wlr_output) {
}
if (wlr_output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
- wlr_output_send_present(wlr_output, NULL);
+ struct wlr_output_event_present present_event = {
+ .commit_seq = wlr_output->commit_seq + 1,
+ };
+ wlr_output_send_present(wlr_output, &present_event);
}
return true;
diff --git a/backend/wayland/output.c b/backend/wayland/output.c
index 16eb17f5..285c70fc 100644
--- a/backend/wayland/output.c
+++ b/backend/wayland/output.c
@@ -89,7 +89,10 @@ static void presentation_feedback_handle_discarded(void *data,
struct wp_presentation_feedback *wp_feedback) {
struct wlr_wl_presentation_feedback *feedback = data;
- wlr_output_send_present(&feedback->output->wlr_output, NULL);
+ struct wlr_output_event_present event = {
+ .commit_seq = feedback->commit_seq,
+ };
+ wlr_output_send_present(&feedback->output->wlr_output, &event);
presentation_feedback_destroy(feedback);
}
@@ -345,7 +348,10 @@ static bool output_commit(struct wlr_output *wlr_output) {
wp_presentation_feedback_add_listener(wp_feedback,
&presentation_feedback_listener, feedback);
} else {
- wlr_output_send_present(wlr_output, NULL);
+ struct wlr_output_event_present present_event = {
+ .commit_seq = wlr_output->commit_seq + 1,
+ };
+ wlr_output_send_present(wlr_output, &present_event);
}
}
diff --git a/types/wlr_output.c b/types/wlr_output.c
index 65c1d926..a1744304 100644
--- a/types/wlr_output.c
+++ b/types/wlr_output.c
@@ -956,12 +956,7 @@ void wlr_output_schedule_frame(struct wlr_output *output) {
void wlr_output_send_present(struct wlr_output *output,
struct wlr_output_event_present *event) {
- struct wlr_output_event_present _event = {0};
- if (event == NULL) {
- event = &_event;
- event->commit_seq = output->commit_seq + 1;
- }
-
+ assert(event);
event->output = output;
struct timespec now;