data-device: Change resources in wl_data_offer and wl_data_source to pointers.
Because of its links to selection.c and xwayland, a destroy_signal field
was also added to wl_data_source. Before selection.c and xwayland were
manually initializing the resource.destroy_signal field so that it could be
used without a valid resource.
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/src/clipboard.c b/src/clipboard.c
index eb0b230..21a7e69 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -60,8 +60,8 @@
if (source->event_source)
wl_event_source_remove(source->event_source);
- wl_signal_emit(&source->base.resource.destroy_signal,
- &source->base.resource);
+ wl_signal_emit(&source->base.destroy_signal,
+ &source->base);
s = source->base.mime_types.data;
free(*s);
wl_array_release(&source->base.mime_types);
@@ -136,11 +136,11 @@
source = malloc(sizeof *source);
wl_array_init(&source->contents);
wl_array_init(&source->base.mime_types);
+ source->base.resource = NULL;
source->base.accept = clipboard_source_accept;
source->base.send = clipboard_source_send;
source->base.cancel = clipboard_source_cancel;
- source->base.resource.data = &source->base;
- wl_signal_init(&source->base.resource.destroy_signal);
+ wl_signal_init(&source->base.destroy_signal);
source->refcount = 1;
source->clipboard = clipboard;
source->serial = serial;