}
display->objects = wl_hash_table_create();
+ if (display->objects == NULL) {
+ close(display->fd);
+ free(display);
+ return NULL;
+ }
wl_list_init(&display->global_listener_list);
display->proxy.object.interface = &wl_display_interface;
wl_display_destroy(struct wl_display *display)
{
wl_connection_destroy(display->connection);
+ wl_hash_table_destroy(display->objects);
close(display->fd);
free(display);
}
display->object.implementation = (void (**)(void)) &display_interface;
wl_display_add_object(display, &display->object);
if (wl_display_add_global(display, &display->object, NULL)) {
- wl_event_loop_destroy(display->loop);
wl_hash_table_destroy(display->objects);
+ wl_event_loop_destroy(display->loop);
free(display);
return NULL;
}