mirror of
https://github.com/labwc/labwc.git
synced 2026-03-18 05:33:53 -04:00
tree-wide: use die_if_null() for wlr_scene alloc failures
Some checks failed
labwc.github.io / notify (push) Has been cancelled
Some checks failed
labwc.github.io / notify (push) Has been cancelled
wlr_scene_*_create() functions all allocate memory via calloc() and return NULL if the allocation fails. Previously, the failures were handled in any of 3 different ways: - sending a wayland protocol error - exiting labwc with an error - segfault (no NULL check at all) Since labwc does not attempt to survive heap exhaustion in other allocation paths (such as `znew`), it seems more consistent to use the same die_if_null() check used in those paths to exit with an error. For the three most common create() functions (tree, rect, buffer), add small lab_wlr_ wrappers to common/scene-helpers.
This commit is contained in:
parent
c4effef0ec
commit
16c5373be5
27 changed files with 155 additions and 141 deletions
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include <stdbool.h>
|
||||
|
||||
struct wlr_buffer;
|
||||
struct wlr_scene_node;
|
||||
struct wlr_surface;
|
||||
struct wlr_scene_output;
|
||||
|
|
@ -11,6 +12,13 @@ struct wlr_output_state;
|
|||
|
||||
struct wlr_surface *lab_wlr_surface_from_node(struct wlr_scene_node *node);
|
||||
|
||||
/* variants of wlr_scene_*_create() functions that don't return NULL */
|
||||
struct wlr_scene_tree *lab_wlr_scene_tree_create(struct wlr_scene_tree *parent);
|
||||
struct wlr_scene_rect *lab_wlr_scene_rect_create(struct wlr_scene_tree *parent,
|
||||
int width, int height, const float color[static 4]);
|
||||
struct wlr_scene_buffer *lab_wlr_scene_buffer_create(
|
||||
struct wlr_scene_tree *parent, struct wlr_buffer *buffer);
|
||||
|
||||
/**
|
||||
* lab_get_prev_node - return previous (sibling) node
|
||||
* @node: node to find the previous node from
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue