wayland: Changes to 'upstream-experimental'
configure.ac | 2 +-
cursor/wayland-cursor.pc.in | 8 ++++----
protocol/wayland.xml | 2 +-
src/Makefile.am | 1 +
src/scanner.c | 2 +-
src/wayland-client.c | 31 +++++++++++++++++++++++++++----
src/wayland-client.h | 2 ++
src/wayland-client.pc.in | 8 ++++----
src/wayland-server.c | 2 +-
src/wayland-server.pc.in | 8 ++++----
10 files changed, 46 insertions(+), 20 deletions(-)
New commits:
commit 64e37842983349dcb3bfd102885669db0c01b16c
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Fri Nov 30 16:00:00 2012 -0500
configure.ac: Bump version to 1.0.2
diff --git a/configure.ac b/configure.ac
index aa7a62a..0d842e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.64])
m4_define([wayland_major_version], [1])
m4_define([wayland_minor_version], [0])
-m4_define([wayland_micro_version], [1])
+m4_define([wayland_micro_version], [2])
m4_define([wayland_version],
[wayland_major_version.wayland_minor_version.wayland_micro_version])
commit da999862716ea7824c254de68af4080d930384ea
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Fri Nov 30 16:11:04 2012 -0500
client: Update libtool version for new entry points
We've added wl_display_dispatch_queue_pending, so update the libtool
library current and age fields accordingly.
diff --git a/src/Makefile.am b/src/Makefile.am
index f93954e..e1d04ea 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,6 +27,7 @@ libwayland_server_la_SOURCES = \
event-loop.c
libwayland_client_la_LIBADD = $(FFI_LIBS) libwayland-util.la -lrt -lm
+libwayland_client_la_LDFLAGS = -version-info 1:0:1
libwayland_client_la_SOURCES = \
wayland-protocol.c \
wayland-client.c
commit 5c34b15f033eb0eb7062e99f7761d4cbd93af61e
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Fri Nov 30 14:05:32 2012 -0500
client: Add \since tag for wl_display_dispatch_queue_pending() documentation
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 5ba2c45..785f4ee 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -940,6 +940,7 @@ wl_display_dispatch_queue(struct wl_display *display,
* If there are no events queued, this functions return immediately.
*
* \memberof wl_display
+ * \since 1.0.2
*/
WL_EXPORT int
wl_display_dispatch_queue_pending(struct wl_display *display,
commit 65a0bbdbdeaa4552a1af4ad4b1f3f4960305444f
Author: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Tue Nov 27 22:35:18 2012 +0100
pkgconfig: Use configure provided directories
https://bugs.freedesktop.org/show_bug.cgi?id=57630
diff --git a/cursor/wayland-cursor.pc.in b/cursor/wayland-cursor.pc.in
index b10d039..fbbf5ff 100644
--- a/cursor/wayland-cursor.pc.in
+++ b/cursor/wayland-cursor.pc.in
@@ -1,8 +1,8 @@
prefix=@prefix@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
Name: Wayland Cursor
Description: Wayland cursor helper library
Version: @WAYLAND_VERSION@
diff --git a/src/wayland-client.pc.in b/src/wayland-client.pc.in
index b3df950..e453018 100644
--- a/src/wayland-client.pc.in
+++ b/src/wayland-client.pc.in
@@ -1,8 +1,8 @@
prefix=@prefix@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
Name: Wayland Client
Description: Wayland client side library
Version: @WAYLAND_VERSION@
diff --git a/src/wayland-server.pc.in b/src/wayland-server.pc.in
index 8e3214e..18a0b52 100644
--- a/src/wayland-server.pc.in
+++ b/src/wayland-server.pc.in
@@ -1,8 +1,8 @@
prefix=@prefix@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
Name: Wayland Server
Description: Server side implementation of the Wayland protocol
Version: @WAYLAND_VERSION@
commit 00639de12050c8755965a569de4f6df9dc36171f
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date: Tue Nov 27 17:03:40 2012 +0200
scanner: Fix wrong restriction on since field
The scanner would not allow two consecutive requests on an interface to
have the same since number, so if a new version of an interface added
two new request the version number would have to be increased by two.
diff --git a/src/scanner.c b/src/scanner.c
index 5793c20..6d2eddd 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -356,7 +356,7 @@ start_element(void *data, const char *element_name, const char **atts)
version = strtol(since, &end, 0);
if (errno == EINVAL || end == since || *end != '\0')
fail(ctx, "invalid integer\n");
- if (version <= ctx->interface->since)
+ if (version < ctx->interface->since)
fail(ctx, "since version not increasing\n");
ctx->interface->since = version;
}
commit d7a63fdbfb8fcfcf4b2a81bc4773958ebd785d15
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Mon Nov 26 23:25:53 2012 +0100
client: Don't cancel a roundtrip when any event is received
Since wl_display_dispatch() returns the number of processed events or -1
on error, only cancel the roundtrip if an -1 is returned.
This also fixes a potential memory corruption bug happening when
wl_display_roundtrip() does an early return and the callback later
writes to the then out of scope stack allocated `done' parameter.
Introduced by 33b7637b4500a682018b503837b8aca9afae36f2.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 5fecc01..5ba2c45 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -649,9 +649,12 @@ wl_display_roundtrip(struct wl_display *display)
done = 0;
callback = wl_display_sync(display);
wl_callback_add_listener(callback, &sync_listener, &done);
- while (!done && !ret)
+ while (!done && ret >= 0)
ret = wl_display_dispatch(display);
+ if (ret == -1 && !done)
+ wl_callback_destroy(callback);
+
return ret;
}
commit 5df752ab16f4a343416952ccbc07ab6aa0217429
Author: Tiago Vignatti <tiago.vignatti@intel.com>
Date: Thu Nov 22 18:09:32 2012 -0200
doc: Fix typos
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index ca3c56f..cc8fb06 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -102,7 +102,7 @@
When a client creates a registry object, the registry object
will emit a global event for each global currently in the
- regitry. Globals come and go as a result of device hotplugs,
+ registry. Globals come and go as a result of device hotplugs,
reconfiguration or other events, and the registry will send out
@global and @global_remove events to keep the client up to date
with the changes. To mark the end of the initial burst of
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 56dbb4f..5fecc01 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -298,11 +298,11 @@ wl_proxy_destroy(struct wl_proxy *proxy)
* \return 0 on success or -1 on failure
*
* Set proxy's listener to \c implementation and its user data to
- * \c data. Ifa listener has already been set, this functions
+ * \c data. If a listener has already been set, this function
* fails and nothing is changed.
*
* \c implementation is a vector of function pointers. For an opcode
- * \c n, \c implemention[n] should point to the handler of \c n for
+ * \c n, \c implementation[n] should point to the handler of \c n for
* the given object.
*
* \memberof wl_proxy
commit fb205078819380538e6c0793f10ce603d7368da3
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date: Thu Nov 22 15:34:48 2012 +0200
client: Add an entry point for dispatching a queue without blocking
On the client side EGL, all the wl_buffer.release events need to be
processed before buffer allocation, otherwise a third buffer might
be allocated unnecessarily. However, the buffer allocation should
not block in the case no event was received. In order to do that, a
non-blocking queue dispatch function is needed.
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 4d0637b..56dbb4f 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -926,6 +926,25 @@ wl_display_dispatch_queue(struct wl_display *display,
return dispatch_queue(display, queue, 1);
}
+/** Dispatch pending events in an event queue
+ *
+ * \param display The display context object
+ * \param queue The event queue to dispatch
+ * \return The number of dispatched events on success or -1 on failure
+ *
+ * Dispatch all incoming events for objects assigned to the given
+ * event queue. On failure -1 is returned and errno set appropriately.
+ * If there are no events queued, this functions return immediately.
+ *
+ * \memberof wl_display
+ */
+WL_EXPORT int
+wl_display_dispatch_queue_pending(struct wl_display *display,
+ struct wl_event_queue *queue)
+{
+ return dispatch_queue(display, queue, 0);
+}
+
/** Process incoming events
*
* \param display The display context object
diff --git a/src/wayland-client.h b/src/wayland-client.h
index 71fe450..8d2b8df 100644
--- a/src/wayland-client.h
+++ b/src/wayland-client.h
@@ -145,6 +145,8 @@ int wl_display_get_fd(struct wl_display *display);
int wl_display_dispatch(struct wl_display *display);
int wl_display_dispatch_queue(struct wl_display *display,
struct wl_event_queue *queue);
+int wl_display_dispatch_queue_pending(struct wl_display *display,
+ struct wl_event_queue *queue);
int wl_display_dispatch_pending(struct wl_display *display);
int wl_display_get_error(struct wl_display *display);
commit 0f5d41e3bbc2741c86b4c85f9f52b22cf35aa71b
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Nov 21 17:14:55 2012 -0500
debug: Allow WAYLAND_DEBUG=server/client for server/client side only debug
By default the server will dump protocol for both the server and its
clients when run with WAYLAND_DEBUG=1. That's still the case, but it now
also understands WAYLAND_DEBUG=client or WAYLAND_DEBUG=server, which
will only enable debug dumping on either client or server side.
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 5ab000c..4d0637b 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -502,7 +502,7 @@ wl_display_connect_to_fd(int fd)
const char *debug;
debug = getenv("WAYLAND_DEBUG");
- if (debug)
+ if (debug && (strstr(debug, "client") || strstr(debug, "1")))
wl_debug = 1;
display = malloc(sizeof *display);
diff --git a/src/wayland-server.c b/src/wayland-server.c
index acbab9a..f7f4c14 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -1078,7 +1078,7 @@ wl_display_create(void)
const char *debug;
debug = getenv("WAYLAND_DEBUG");
- if (debug)
+ if (debug && (strstr(debug, "server") || strstr(debug, "1")))
wl_debug = 1;
display = malloc(sizeof *display);
Reply to: