client: Invoke new_id closure arguments as pointers instead of integers

This commit adds a flags parameter to wl_closure_invoke(). The so far
added flags are ment to specify if the invokation is client side or
server side. When on the server side, closure arguments of type 'new_id'
should be invoked as a integer id while on the client side they should
be invoked as a pointer to a proxy object.

This fixes a bug happening when the address of a client side 'new_id'
proxy object did not fit in a 32 bit integer.

krh: Squashed test suite compile fix from Jason Ekstrand.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
Jonas Ådahl 2013-03-08 18:44:16 +01:00 committed by Kristian Høgsberg
parent e053a56251
commit cb73bffed5
6 changed files with 23 additions and 12 deletions

View file

@ -277,7 +277,7 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
if (wl_debug)
wl_closure_print(closure, object, false);
wl_closure_invoke(closure, object,
wl_closure_invoke(closure, WL_CLOSURE_INVOKE_SERVER, object,
object->implementation[opcode], client);
wl_closure_destroy(closure);