From 7cb206deb4e24847297e69859488d2e24445d9e2 Mon Sep 17 00:00:00 2001 From: Simon Zeni Date: Mon, 8 Apr 2024 10:11:50 -0400 Subject: [PATCH] examples: assert on memory allocation Also checks for NULL output in the `X_from_device` functions --- examples/cairo-buffer.c | 3 ++- examples/embedded.c | 2 ++ examples/fullscreen-shell.c | 2 ++ examples/output-layers.c | 3 +++ examples/output-layout.c | 4 ++++ examples/pointer.c | 4 ++++ examples/rotation.c | 4 ++++ examples/scene-graph.c | 2 ++ examples/simple.c | 4 ++++ examples/tablet.c | 7 +++++++ examples/touch.c | 5 +++++ 11 files changed, 39 insertions(+), 1 deletion(-) diff --git a/examples/cairo-buffer.c b/examples/cairo-buffer.c index 7de4a053b..1058774bf 100644 --- a/examples/cairo-buffer.c +++ b/examples/cairo-buffer.c @@ -1,4 +1,4 @@ - +#include #include #include #include @@ -101,6 +101,7 @@ static void server_handle_new_output(struct wl_listener *listener, void *data) { wlr_output_init_render(wlr_output, server->allocator, server->renderer); struct output *output = calloc(1, sizeof(*output)); + assert(output); output->wlr = wlr_output; output->server = server; output->frame.notify = output_handle_frame; diff --git a/examples/embedded.c b/examples/embedded.c index f0f661198..9edf9577b 100644 --- a/examples/embedded.c +++ b/examples/embedded.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -145,6 +146,7 @@ static void handle_new_surface(struct wl_listener *listener, void *data) { struct wlr_surface *wlr_surface = data; struct surface *surface = calloc(1, sizeof(*surface)); + assert(surface); surface->wlr = wlr_surface; surface->commit.notify = surface_handle_commit; diff --git a/examples/fullscreen-shell.c b/examples/fullscreen-shell.c index c12f126e9..bb4261895 100644 --- a/examples/fullscreen-shell.c +++ b/examples/fullscreen-shell.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -154,6 +155,7 @@ static void server_handle_new_output(struct wl_listener *listener, void *data) { wlr_output_init_render(wlr_output, server->allocator, server->renderer); struct fullscreen_output *output = calloc(1, sizeof(*output)); + assert(output); output->wlr_output = wlr_output; output->server = server; output->frame.notify = output_handle_frame; diff --git a/examples/output-layers.c b/examples/output-layers.c index 5089c6aa5..0ee038dd3 100644 --- a/examples/output-layers.c +++ b/examples/output-layers.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -166,6 +167,7 @@ static void server_handle_new_output(struct wl_listener *listener, void *data) { wlr_output_init_render(wlr_output, server->allocator, server->renderer); struct output *output = calloc(1, sizeof(*output)); + assert(output); output->wlr_output = wlr_output; output->server = server; wl_list_init(&output->surfaces); @@ -247,6 +249,7 @@ static void server_handle_new_surface(struct wl_listener *listener, struct output *output; wl_list_for_each(output, &server->outputs, link) { struct output_surface *output_surface = calloc(1, sizeof(*output_surface)); + assert(output_surface); output_surface->wlr_surface = wlr_surface; output_surface->server = server; output_surface->destroy.notify = output_surface_handle_destroy; diff --git a/examples/output-layout.c b/examples/output-layout.c index 3a3eeb24f..13f572cd9 100644 --- a/examples/output-layout.c +++ b/examples/output-layout.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -167,6 +168,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); wlr_output_layout_add_auto(sample->layout, output); sample_output->output = output; sample_output->sample = sample; @@ -235,7 +237,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { switch (device->type) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); + assert(keyboard->wlr_keyboard); keyboard->sample = sample; wl_signal_add(&device->events.destroy, &keyboard->destroy); keyboard->destroy.notify = keyboard_destroy_notify; diff --git a/examples/pointer.c b/examples/pointer.c index fed37a5b3..5b0de644b 100644 --- a/examples/pointer.c +++ b/examples/pointer.c @@ -193,6 +193,7 @@ static void handle_touch_down(struct wl_listener *listener, void *data) { struct sample_state *sample = wl_container_of(listener, sample, touch_down); struct wlr_touch_down_event *event = data; struct touch_point *point = calloc(1, sizeof(*point)); + assert(point); point->touch_id = event->touch_id; point->x = event->x; point->y = event->y; @@ -265,6 +266,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); sample_output->output = output; sample_output->state = sample; wl_signal_add(&output->events.frame, &sample_output->frame); @@ -304,7 +306,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); + assert(keyboard->wlr_keyboard); keyboard->state = state; wl_signal_add(&device->events.destroy, &keyboard->destroy); keyboard->destroy.notify = keyboard_destroy_notify; diff --git a/examples/rotation.c b/examples/rotation.c index 351973f61..b4b1d3145 100644 --- a/examples/rotation.c +++ b/examples/rotation.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -118,6 +119,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); sample_output->x_offs = sample_output->y_offs = 0; sample_output->x_vel = sample_output->y_vel = 128; @@ -186,7 +188,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { switch (device->type) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); + assert(keyboard->wlr_keyboard); keyboard->sample = sample; wl_signal_add(&device->events.destroy, &keyboard->destroy); keyboard->destroy.notify = keyboard_destroy_notify; diff --git a/examples/scene-graph.c b/examples/scene-graph.c index 421986534..7f2dc65d7 100644 --- a/examples/scene-graph.c +++ b/examples/scene-graph.c @@ -72,6 +72,7 @@ static void server_handle_new_output(struct wl_listener *listener, void *data) { wlr_output_init_render(wlr_output, server->allocator, server->renderer); struct output *output = calloc(1, sizeof(*output)); + assert(output); output->wlr = wlr_output; output->server = server; output->frame.notify = output_handle_frame; @@ -124,6 +125,7 @@ static void server_handle_new_surface(struct wl_listener *listener, server->surface_offset += 50; struct surface *surface = calloc(1, sizeof(*surface)); + assert(surface); surface->wlr = wlr_surface; surface->commit.notify = surface_handle_commit; wl_signal_add(&wlr_surface->events.commit, &surface->commit); diff --git a/examples/simple.c b/examples/simple.c index 81ed2e0e9..32f80fec8 100644 --- a/examples/simple.c +++ b/examples/simple.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -97,6 +98,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); sample_output->output = output; sample_output->sample = sample; wl_signal_add(&output->events.frame, &sample_output->frame); @@ -145,7 +147,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { switch (device->type) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); + assert(keyboard->wlr_keyboard); keyboard->sample = sample; wl_signal_add(&device->events.destroy, &keyboard->destroy); keyboard->destroy.notify = keyboard_destroy_notify; diff --git a/examples/tablet.c b/examples/tablet.c index 8f0754df1..19434b1dc 100644 --- a/examples/tablet.c +++ b/examples/tablet.c @@ -1,5 +1,6 @@ #undef _POSIX_C_SOURCE #define _XOPEN_SOURCE 600 // for M_PI +#include #include #include #include @@ -271,6 +272,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); sample_output->output = output; sample_output->sample = sample; wl_signal_add(&output->events.frame, &sample_output->frame); @@ -318,7 +320,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { switch (device->type) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); + assert(keyboard->wlr_keyboard); keyboard->sample = sample; wl_signal_add(&device->events.destroy, &keyboard->destroy); keyboard->destroy.notify = keyboard_destroy_notify; @@ -341,7 +345,9 @@ static void new_input_notify(struct wl_listener *listener, void *data) { break; case WLR_INPUT_DEVICE_TABLET_PAD:; struct tablet_pad_state *pstate = calloc(1, sizeof(*pstate)); + assert(pstate); pstate->wlr_tablet_pad = wlr_tablet_pad_from_input_device(device); + assert(pstate->wlr_tablet_pad); pstate->sample = sample; pstate->destroy.notify = tablet_pad_destroy_notify; wl_signal_add(&device->events.destroy, &pstate->destroy); @@ -359,6 +365,7 @@ static void new_input_notify(struct wl_listener *listener, void *data) { 10 : tablet->height_mm; struct tablet_tool_state *tstate = calloc(1, sizeof(*tstate)); + assert(tstate); tstate->wlr_tablet = tablet; tstate->sample = sample; tstate->destroy.notify = tablet_tool_destroy_notify; diff --git a/examples/touch.c b/examples/touch.c index e1bd73818..845d883d7 100644 --- a/examples/touch.c +++ b/examples/touch.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -103,6 +104,7 @@ static void touch_down_notify(struct wl_listener *listener, void *data) { struct touch_state *tstate = wl_container_of(listener, tstate, down); struct sample_state *sample = tstate->sample; struct touch_point *point = calloc(1, sizeof(*point)); + assert(point); point->touch_id = event->touch_id; point->x = event->x; point->y = event->y; @@ -174,6 +176,7 @@ static void new_output_notify(struct wl_listener *listener, void *data) { wlr_output_init_render(output, sample->allocator, sample->renderer); struct sample_output *sample_output = calloc(1, sizeof(*sample_output)); + assert(sample_output); sample_output->output = output; sample_output->sample = sample; wl_signal_add(&output->events.frame, &sample_output->frame); @@ -221,6 +224,7 @@ static void new_input_notify(struct wl_listener *listener, void *data) { switch (device->type) { case WLR_INPUT_DEVICE_KEYBOARD:; struct sample_keyboard *keyboard = calloc(1, sizeof(*keyboard)); + assert(keyboard); keyboard->wlr_keyboard = wlr_keyboard_from_input_device(device); keyboard->sample = sample; wl_signal_add(&device->events.destroy, &keyboard->destroy); @@ -244,6 +248,7 @@ static void new_input_notify(struct wl_listener *listener, void *data) { break; case WLR_INPUT_DEVICE_TOUCH:; struct touch_state *tstate = calloc(1, sizeof(*tstate)); + assert(tstate); tstate->wlr_touch = wlr_touch_from_input_device(device); tstate->sample = sample; tstate->destroy.notify = touch_destroy_notify;