libweston: Implement wl_output version 3 (release request)

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/libweston/compositor.c b/libweston/compositor.c
index 783ff7e..2eb3a3b 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -4018,6 +4018,17 @@
 		wl_list_insert(&ec->plane_list, &plane->link);
 }
 
+static void
+output_release(struct wl_client *client, struct wl_resource *resource)
+{
+	wl_resource_destroy(resource);
+}
+
+static const struct wl_output_interface output_interface = {
+	output_release,
+};
+
+
 static void unbind_resource(struct wl_resource *resource)
 {
 	wl_list_remove(wl_resource_get_link(resource));
@@ -4039,7 +4050,7 @@
 	}
 
 	wl_list_insert(&output->resource_list, wl_resource_get_link(resource));
-	wl_resource_set_implementation(resource, NULL, data, unbind_resource);
+	wl_resource_set_implementation(resource, &output_interface, data, unbind_resource);
 
 	wl_output_send_geometry(resource,
 				output->x,
@@ -4312,7 +4323,7 @@
 	output->compositor->output_id_pool |= 1u << output->id;
 
 	output->global =
-		wl_global_create(c->wl_display, &wl_output_interface, 2,
+		wl_global_create(c->wl_display, &wl_output_interface, 3,
 				 output, bind_output);
 }