Fix wl_data_offer source destroy listener
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Thu, 1 Mar 2012 12:09:41 +0000 (14:09 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 1 Mar 2012 16:50:53 +0000 (11:50 -0500)
The listener function implementation was getting a wrong pointer to the
wl_data_offer object because the resource parameter is actually the
data source and not the data offer.

src/data-device.c

index 645dbc6..0c7fa65 100644 (file)
@@ -80,7 +80,10 @@ static void
 destroy_offer_data_source(struct wl_listener *listener,
                          struct wl_resource *resource, uint32_t time)
 {
-       struct wl_data_offer *offer = resource->data;
+       struct wl_data_offer *offer;
+
+       offer = container_of(listener, struct wl_data_offer,
+                            source_destroy_listener);
 
        offer->source = NULL;
 }