client: Don't abort when sending a request fails

Instead, set a fatal display error which will let an application
using libwayland-client shutdown cleanly.

Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
This commit is contained in:
Manuel Stoeckl 2019-07-13 17:54:14 -04:00
parent 6265dd4f07
commit 8a831ac6ec

View file

@ -745,14 +745,19 @@ wl_proxy_marshal_array_constructor_versioned(struct wl_proxy *proxy,
} }
closure = wl_closure_marshal(&proxy->object, opcode, args, message); closure = wl_closure_marshal(&proxy->object, opcode, args, message);
if (closure == NULL) if (closure == NULL) {
wl_abort("Error marshalling request: %s\n", strerror(errno)); wl_log("Error marshalling request: %s\n", strerror(errno));
display_fatal_error(proxy->display, errno);
goto err_unlock;
}
if (debug_client) if (debug_client)
wl_closure_print(closure, &proxy->object, true); wl_closure_print(closure, &proxy->object, true);
if (wl_closure_send(closure, proxy->display->connection)) if (wl_closure_send(closure, proxy->display->connection)) {
wl_abort("Error sending request: %s\n", strerror(errno)); wl_log("Error sending request: %s\n", strerror(errno));
display_fatal_error(proxy->display, errno);
}
wl_closure_destroy(closure); wl_closure_destroy(closure);