From 243672cd3ca35a6418176fbd16db033f40b92b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Sun, 22 Apr 2012 14:16:08 -0400 Subject: [PATCH] connection: Make sure we can invoke closures built with wl_closure_vmarshal() --- src/connection.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/connection.c b/src/connection.c index ffae35d8..a599f91c 100644 --- a/src/connection.c +++ b/src/connection.c @@ -422,6 +422,9 @@ wl_closure_vmarshal(struct wl_closure *closure, end = &closure->buffer[ARRAY_LENGTH(closure->buffer)]; p = &start[2]; + closure->types[0] = &ffi_type_pointer; + closure->types[1] = &ffi_type_pointer; + for (i = 2; i < count; i++) { switch (message->signature[i - 2]) { case 'u': @@ -538,6 +541,9 @@ wl_closure_vmarshal(struct wl_closure *closure, closure->message = message; closure->count = count; + ffi_prep_cif(&closure->cif, FFI_DEFAULT_ABI, + closure->count, &ffi_type_void, closure->types); + return 0; err: @@ -723,6 +729,7 @@ wl_connection_demarshal(struct wl_connection *connection, } closure->count = i; + ffi_prep_cif(&closure->cif, FFI_DEFAULT_ABI, closure->count, &ffi_type_void, closure->types);