wayland-server: Improve error messages for bad globals
authorJasper St. Pierre <jstpierre@mecheye.net>
Wed, 13 Nov 2013 02:44:37 +0000 (21:44 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 19 Nov 2013 21:26:32 +0000 (13:26 -0800)
A bug in Weston's toytoolkit gave me an hour of debugging headaches.
Improve the error messages that we send if a client requests an invalid
global, either by name or by version.

src/wayland-server.c

index e04d2f4..80e76e1 100644 (file)
@@ -701,11 +701,15 @@ registry_bind(struct wl_client *client,
                if (global->name == name)
                        break;
 
-       if (&global->link == &display->global_list ||
-           global->version < version)
+       if (&global->link == &display->global_list)
                wl_resource_post_error(resource,
                                       WL_DISPLAY_ERROR_INVALID_OBJECT,
-                                      "invalid global %d", name);
+                                      "invalid global %s (%d)", interface, name);
+       else if (global->version < version)
+               wl_resource_post_error(resource,
+                                      WL_DISPLAY_ERROR_INVALID_OBJECT,
+                                      "invalid version for global %s (%d): have %d, wanted %d",
+                                      interface, name, global->version, version);
        else
                global->bind(client, global->data, version, id);
 }