diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2012-04-22 14:16:08 -0400 |
|---|---|---|
| committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-04-22 14:17:20 -0400 |
| commit | 243672cd3ca35a6418176fbd16db033f40b92b90 (patch) | |
| tree | 01320d38d8797c2f680c5fd7ea3d752ae7d0c2c8 /src | |
| parent | connection: Move closure object out of wl_connection (diff) | |
| download | wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar.gz wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar.bz2 wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar.lz wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar.xz wayland-243672cd3ca35a6418176fbd16db033f40b92b90.tar.zst wayland-243672cd3ca35a6418176fbd16db033f40b92b90.zip | |
connection: Make sure we can invoke closures built with wl_closure_vmarshal()
Diffstat (limited to 'src')
| -rw-r--r-- | src/connection.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/connection.c b/src/connection.c index ffae35d..a599f91 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); |
