wayland: Use g_slice_new0

And fix a leak.
This commit is contained in:
Jasper St. Pierre 2014-03-11 15:18:51 -04:00
parent 5298cf0a3a
commit 55c61259d8

View File

@ -82,7 +82,8 @@ destroy_data_offer (struct wl_resource *resource)
if (offer->source) if (offer->source)
wl_list_remove (&offer->source_destroy_listener.link); wl_list_remove (&offer->source_destroy_listener.link);
free (offer);
g_slice_free (MetaWaylandDataOffer, offer);
} }
static void static void
@ -99,13 +100,9 @@ static struct wl_resource *
meta_wayland_data_source_send_offer (MetaWaylandDataSource *source, meta_wayland_data_source_send_offer (MetaWaylandDataSource *source,
struct wl_resource *target) struct wl_resource *target)
{ {
MetaWaylandDataOffer *offer; MetaWaylandDataOffer *offer = g_slice_new0 (MetaWaylandDataOffer);
char **p; char **p;
offer = malloc (sizeof *offer);
if (offer == NULL)
return NULL;
offer->source = source; offer->source = source;
offer->source_destroy_listener.notify = destroy_offer_data_source; offer->source_destroy_listener.notify = destroy_offer_data_source;
@ -460,6 +457,8 @@ destroy_data_source (struct wl_resource *resource)
wl_array_for_each (p, &source->mime_types) free (*p); wl_array_for_each (p, &source->mime_types) free (*p);
wl_array_release (&source->mime_types); wl_array_release (&source->mime_types);
g_slice_free (MetaWaylandDataSource, source);
} }
static void static void
@ -487,14 +486,7 @@ static void
create_data_source (struct wl_client *client, create_data_source (struct wl_client *client,
struct wl_resource *resource, guint32 id) struct wl_resource *resource, guint32 id)
{ {
MetaWaylandDataSource *source; MetaWaylandDataSource *source = g_slice_new0 (MetaWaylandDataSource);
source = malloc (sizeof *source);
if (source == NULL)
{
wl_resource_post_no_memory (resource);
return;
}
source->resource = wl_resource_create (client, &wl_data_source_interface, source->resource = wl_resource_create (client, &wl_data_source_interface,
MIN (META_WL_DATA_SOURCE_VERSION, MIN (META_WL_DATA_SOURCE_VERSION,