mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-11-04 13:29:51 -05:00
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>
This commit is contained in:
parent
ee9b69cfe0
commit
0a37511ecc
3 changed files with 12 additions and 2 deletions
|
|
@ -313,7 +313,6 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
|
|||
|
||||
closure = wl_connection_demarshal(client->connection, size,
|
||||
&client->objects, message);
|
||||
len -= size;
|
||||
|
||||
if (closure == NULL && errno == ENOMEM) {
|
||||
wl_resource_post_no_memory(resource);
|
||||
|
|
@ -346,6 +345,8 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
|
|||
|
||||
if (client->error)
|
||||
break;
|
||||
|
||||
len = wl_connection_pending_input(connection);
|
||||
}
|
||||
|
||||
if (client->error)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue