diff options
| author | Jaeyoon Jung <jaeyoon.jung@lge.com> | 2016-01-12 13:12:34 +0900 |
|---|---|---|
| committer | Derek Foreman <derekf@osg.samsung.com> | 2016-01-12 10:45:33 -0600 |
| commit | 0a37511ecc0117339e5e5d0add84a2f3b51493d2 (patch) | |
| tree | e20532c9ab0067097876811d88c2009cc15feb1a /src/connection.c | |
| parent | doc: Fix incorrect parameter name (diff) | |
| download | wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar.gz wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar.bz2 wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar.lz wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar.xz wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.tar.zst wayland-0a37511ecc0117339e5e5d0add84a2f3b51493d2.zip | |
server: Calculate remaining data size after a closure is processed
When processing a closure, data in the connection can be consumed again
if the closure itself invokes extra event dispatch. In that case the
remaining data size is also altered, so the variable len should be
updated after the closure is processed.
Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Diffstat (limited to 'src/connection.c')
| -rw-r--r-- | src/connection.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/connection.c b/src/connection.c index 45a2e78..bc373f6 100644 --- a/src/connection.c +++ b/src/connection.c @@ -314,6 +314,12 @@ wl_connection_flush(struct wl_connection *connection) return connection->out.head - tail; } +uint32_t +wl_connection_pending_input(struct wl_connection *connection) +{ + return wl_buffer_size(&connection->in); +} + int wl_connection_read(struct wl_connection *connection) { @@ -350,7 +356,7 @@ wl_connection_read(struct wl_connection *connection) connection->in.head += len; - return connection->in.head - connection->in.tail; + return wl_connection_pending_input(connection); } int |
