[PATCH weston 1/2] clients: use xmalloc in more places
Kristian Høgsberg
hoegsberg at gmail.com
Wed Aug 7 16:29:25 PDT 2013
On Wed, Aug 07, 2013 at 03:34:59PM -0700, Brian Lovin wrote:
> For the clients continue to use xmalloc() to simplify OOM-handling.
Thanks, looks good, applied.
Kristian
> 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
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list