[PATCH weston 1/2] clients: use xmalloc in more places
Brian Lovin
brian.j.lovin at intel.com
Wed Aug 7 15:34:59 PDT 2013
For the clients continue to use xmalloc() to simplify OOM-handling.
Signed-off-by: Brian Lovin <brian.j.lovin at intel.com>
---
clients/dnd.c | 6 ++----
clients/editor.c | 3 ++-
clients/keyboard.c | 4 ++--
clients/resizor.c | 4 +---
clients/screenshot.c | 2 +-
clients/subsurfaces.c | 8 ++++----
clients/tablet-shell.c | 6 +++---
clients/terminal.c | 4 +---
clients/window.c | 19 +++++++++++--------
9 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/clients/dnd.c b/clients/dnd.c
index 140f3f4..ff46fd7 100644
--- a/clients/dnd.c
+++ b/clients/dnd.c
@@ -391,7 +391,7 @@ dnd_button_handler(struct widget *widget,
y -= allocation.y;
if (item && state == WL_POINTER_BUTTON_STATE_PRESSED) {
- dnd_drag = malloc(sizeof *dnd_drag);
+ dnd_drag = xmalloc(sizeof *dnd_drag);
dnd_drag->dnd = dnd;
dnd_drag->input = input;
dnd_drag->time = time;
@@ -567,9 +567,7 @@ dnd_create(struct display *display)
int32_t width, height;
unsigned int i;
- dnd = malloc(sizeof *dnd);
- if (dnd == NULL)
- return dnd;
+ dnd = xmalloc(sizeof *dnd);
memset(dnd, 0, sizeof *dnd);
dnd->window = window_create(display);
diff --git a/clients/editor.c b/clients/editor.c
index 1300ccf..12650f3 100644
--- a/clients/editor.c
+++ b/clients/editor.c
@@ -501,7 +501,8 @@ text_entry_create(struct editor *editor, const char *text)
{
struct text_entry *entry;
- entry = calloc(1, sizeof *entry);
+ entry = xmalloc(sizeof *entry);
+ memset(entry, 0, sizeof *entry);
entry->widget = widget_add_widget(editor->widget, entry);
entry->window = editor->window;
diff --git a/clients/keyboard.c b/clients/keyboard.c
index a2fbded..5fe5d9d 100644
--- a/clients/keyboard.c
+++ b/clients/keyboard.c
@@ -384,7 +384,7 @@ resize_handler(struct widget *widget,
static char *
insert_text(const char *text, uint32_t offset, const char *insert)
{
- char *new_text = malloc(strlen(text) + strlen(insert) + 1);
+ char *new_text = xmalloc(strlen(text) + strlen(insert) + 1);
strncat(new_text, text, offset);
new_text[offset] = '\0';
@@ -836,7 +836,7 @@ keyboard_create(struct output *output, struct virtual_keyboard *virtual_keyboard
layout = get_current_layout(virtual_keyboard);
- keyboard = malloc(sizeof *keyboard);
+ keyboard = xmalloc(sizeof *keyboard);
memset(keyboard, 0, sizeof *keyboard);
keyboard->keyboard = virtual_keyboard;
diff --git a/clients/resizor.c b/clients/resizor.c
index 27879a0..49b2817 100644
--- a/clients/resizor.c
+++ b/clients/resizor.c
@@ -233,9 +233,7 @@ resizor_create(struct display *display)
{
struct resizor *resizor;
- resizor = malloc(sizeof *resizor);
- if (resizor == NULL)
- return resizor;
+ resizor = xmalloc(sizeof *resizor);
memset(resizor, 0, sizeof *resizor);
resizor->window = window_create(display);
diff --git a/clients/screenshot.c b/clients/screenshot.c
index 7511ef7..d58d8b1 100644
--- a/clients/screenshot.c
+++ b/clients/screenshot.c
@@ -115,7 +115,7 @@ handle_global(void *data, struct wl_registry *registry,
static struct screenshooter_output *output;
if (strcmp(interface, "wl_output") == 0) {
- output = malloc(sizeof *output);
+ output = xmalloc(sizeof *output);
output->output = wl_registry_bind(registry, name,
&wl_output_interface, 1);
wl_list_insert(&output_list, &output->link);
diff --git a/clients/subsurfaces.c b/clients/subsurfaces.c
index 7fa8abb..f93057e 100644
--- a/clients/subsurfaces.c
+++ b/clients/subsurfaces.c
@@ -489,7 +489,8 @@ triangle_create(struct window *window, struct egl_state *egl)
{
struct triangle *tri;
- tri = calloc(1, sizeof *tri);
+ tri = xmalloc(sizeof *tri);
+ memset(tri, 0, sizeof *tri);
tri->egl = egl;
tri->widget = window_add_subsurface(window, tri,
@@ -709,9 +710,8 @@ demoapp_create(struct display *display)
{
struct demoapp *app;
- app = calloc(1, sizeof *app);
- if (!app)
- return NULL;
+ app = xmalloc(sizeof *app);
+ memset(app, 0, sizeof *app);
app->egl = egl_state_create(display_get_display(display));
diff --git a/clients/tablet-shell.c b/clients/tablet-shell.c
index d7aac70..3b52069 100644
--- a/clients/tablet-shell.c
+++ b/clients/tablet-shell.c
@@ -230,7 +230,7 @@ homescreen_create(struct tablet *tablet)
{
struct homescreen *homescreen;
- homescreen = malloc (sizeof *homescreen);
+ homescreen = xmalloc(sizeof *homescreen);
memset(homescreen, 0, sizeof *homescreen);
homescreen->window = window_create_custom(tablet->display);
@@ -248,7 +248,7 @@ lockscreen_create(struct tablet *tablet)
{
struct lockscreen *lockscreen;
- lockscreen = malloc (sizeof *lockscreen);
+ lockscreen = xmalloc(sizeof *lockscreen);
memset(lockscreen, 0, sizeof *lockscreen);
lockscreen->window = window_create_custom(tablet->display);
@@ -395,7 +395,7 @@ tablet_shell_add_launcher(struct tablet *tablet,
struct launcher *launcher;
struct homescreen *homescreen = tablet->homescreen;
- launcher = malloc(sizeof *launcher);
+ launcher = xmalloc(sizeof *launcher);
launcher->icon = load_cairo_surface(icon);
if ( !launcher->icon ||
cairo_surface_status (launcher->icon) != CAIRO_STATUS_SUCCESS) {
diff --git a/clients/terminal.c b/clients/terminal.c
index 0d4f726..1cc26d0 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -2552,9 +2552,7 @@ terminal_create(struct display *display)
cairo_t *cr;
cairo_text_extents_t text_extents;
- terminal = malloc(sizeof *terminal);
- if (terminal == NULL)
- return terminal;
+ terminal = xmalloc(sizeof *terminal);
memset(terminal, 0, sizeof *terminal);
terminal->color_scheme = &DEFAULT_COLORS;
diff --git a/clients/window.c b/clients/window.c
index b9045f3..ac35285 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -1164,7 +1164,9 @@ shm_surface_create(struct display *display, struct wl_surface *wl_surface,
struct shm_surface *surface;
DBG_OBJ(wl_surface, "\n");
- surface = calloc(1, sizeof *surface);
+ surface = xmalloc(sizeof *surface);
+ memset(surface, 0, sizeof *surface);
+
if (!surface)
return NULL;
@@ -1309,7 +1311,7 @@ create_cursors(struct display *display)
display->cursor_theme = wl_cursor_theme_load(theme, size, display->shm);
display->cursors =
- malloc(ARRAY_LENGTH(cursors) * sizeof display->cursors[0]);
+ xmalloc(ARRAY_LENGTH(cursors) * sizeof display->cursors[0]);
for (i = 0; i < ARRAY_LENGTH(cursors); i++) {
cursor = NULL;
@@ -1606,7 +1608,7 @@ widget_create(struct window *window, struct surface *surface, void *data)
{
struct widget *widget;
- widget = malloc(sizeof *widget);
+ widget = xmalloc(sizeof *widget);
memset(widget, 0, sizeof *widget);
widget->window = window;
widget->surface = surface;
@@ -2388,7 +2390,7 @@ frame_button_create(struct frame *frame, void *data, enum frame_button_action ty
struct frame_button *frame_button;
const char *icon = data;
- frame_button = malloc (sizeof *frame_button);
+ frame_button = xmalloc(sizeof *frame_button);
memset(frame_button, 0, sizeof *frame_button);
frame_button->icon = cairo_image_surface_create_from_png(icon);
@@ -3229,7 +3231,7 @@ data_device_data_offer(void *data,
{
struct data_offer *offer;
- offer = malloc(sizeof *offer);
+ offer = xmalloc(sizeof *offer);
wl_array_init(&offer->types);
offer->refcount = 1;
@@ -4138,7 +4140,7 @@ surface_enter(void *data,
if (!output_found)
return;
- window_output = malloc (sizeof *window_output);
+ window_output = xmalloc(sizeof *window_output);
window_output->output = output_found;
wl_list_insert (&window->window_output_list, &window_output->link);
@@ -4185,7 +4187,8 @@ surface_create(struct window *window)
struct display *display = window->display;
struct surface *surface;
- surface = calloc(1, sizeof *surface);
+ surface = xmalloc(sizeof *surface);
+ memset(surface, 0, sizeof *surface);
if (!surface)
return NULL;
@@ -4773,7 +4776,7 @@ registry_handle_global(void *data, struct wl_registry *registry, uint32_t id,
struct display *d = data;
struct global *global;
- global = malloc(sizeof *global);
+ global = xmalloc(sizeof *global);
global->name = id;
global->interface = strdup(interface);
global->version = version;
--
1.8.1.2
More information about the wayland-devel
mailing list