From: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com>

This will allow other wrappers around wl_resource_post_error to accept
variable argument lists.

Signed-off-by: Christopher James Halse Rogers 
<christopher.halse.rog...@canonical.com>
---
 src/wayland-server.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/wayland-server.c b/src/wayland-server.c
index eb1e500..00c93f7 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -273,17 +273,14 @@ wl_resource_queue_event(struct wl_resource *resource, 
uint32_t opcode, ...)
        wl_resource_queue_event_array(resource, opcode, args);
 }
 
-WL_EXPORT void
-wl_resource_post_error(struct wl_resource *resource,
-                      uint32_t code, const char *msg, ...)
+static void
+wl_resource_post_error_vargs(struct wl_resource *resource,
+                            uint32_t code, const char *msg, va_list argp)
 {
        struct wl_client *client = resource->client;
        char buffer[128];
-       va_list ap;
 
-       va_start(ap, msg);
-       vsnprintf(buffer, sizeof buffer, msg, ap);
-       va_end(ap);
+       vsnprintf(buffer, sizeof buffer, msg, argp);
 
        /*
         * When a client aborts, its resources are destroyed in id order,
@@ -298,6 +295,18 @@ wl_resource_post_error(struct wl_resource *resource,
        wl_resource_post_event(client->display_resource,
                               WL_DISPLAY_ERROR, resource, code, buffer);
        client->error = 1;
+
+}
+
+WL_EXPORT void
+wl_resource_post_error(struct wl_resource *resource,
+                      uint32_t code, const char *msg, ...)
+{
+       va_list ap;
+
+       va_start(ap, msg);
+       wl_resource_post_error_vargs(resource, code, msg, ap);
+       va_end(ap);
 }
 
 static void
-- 
2.15.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to