From 31257b3189f81a199bc2902c22bc5f2d7c54ccde Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Sat, 16 Nov 2013 06:35:51 -0500 Subject: Fix sample closure code --- doc/libffi.info | 16 +++++++++------- doc/libffi.texi | 16 +++++++++------- doc/stamp-vti | 2 +- doc/version.texi | 2 +- 4 files changed, 20 insertions(+), 16 deletions(-) (limited to 'doc') diff --git a/doc/libffi.info b/doc/libffi.info index 4d42f5b..de69aaf 100644 --- a/doc/libffi.info +++ b/doc/libffi.info @@ -478,19 +478,21 @@ A trivial example that creates a new 'puts' by binding 'fputs' with #include /* Acts like puts with the file given at time of enclosure. */ - void puts_binding(ffi_cif *cif, ffi_arg *ret, void* args[], - FILE *stream) + void puts_binding(ffi_cif *cif, void *ret, void* args[], + void *stream) { - *ret = fputs(*(char **)args[0], stream); + *(ffi_arg *)ret = fputs(*(char **)args[0], (FILE *)stream); } + typedef int (*puts_t)(char *); + int main() { ffi_cif cif; ffi_type *args[1]; ffi_closure *closure; - int (*bound_puts)(char *); + void *bound_puts; int rc; /* Allocate closure and bound_puts */ @@ -509,7 +511,7 @@ A trivial example that creates a new 'puts' by binding 'fputs' with if (ffi_prep_closure_loc(closure, &cif, puts_binding, stdout, bound_puts) == FFI_OK) { - rc = bound_puts("Hello World!"); + rc = ((puts_t)bound_puts)("Hello World!"); /* rc now holds the result of the call to fputs */ } } @@ -610,7 +612,7 @@ Node: Type Example11207 Node: Multiple ABIs12473 Node: The Closure API12844 Node: Closure Example15788 -Node: Missing Features17342 -Node: Index17795 +Node: Missing Features17396 +Node: Index17849  End Tag Table diff --git a/doc/libffi.texi b/doc/libffi.texi index d13c5c0..57dae0b 100644 --- a/doc/libffi.texi +++ b/doc/libffi.texi @@ -541,21 +541,23 @@ A trivial example that creates a new @code{puts} by binding #include /* Acts like puts with the file given at time of enclosure. */ -void puts_binding(ffi_cif *cif, ffi_arg *ret, void* args[], - FILE *stream) +void puts_binding(ffi_cif *cif, void *ret, void* args[], + void *stream) @{ - *ret = fputs(*(char **)args[0], stream); + *(ffi_arg *)ret = fputs(*(char **)args[0], (FILE *)stream); @} +typedef int (*puts_t)(char *); + int main() @{ ffi_cif cif; ffi_type *args[1]; ffi_closure *closure; - int (*bound_puts)(char *); + void *bound_puts; int rc; - + /* Allocate closure and bound_puts */ closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts); @@ -569,10 +571,10 @@ int main() &ffi_type_sint, args) == FFI_OK) @{ /* Initialize the closure, setting stream to stdout */ - if (ffi_prep_closure_loc(closure, &cif, puts_binding, + if (ffi_prep_closure_loc(closure, &cif, puts_binding, stdout, bound_puts) == FFI_OK) @{ - rc = bound_puts("Hello World!"); + rc = ((puts_t)bound_puts)("Hello World!"); /* rc now holds the result of the call to fputs */ @} @} diff --git a/doc/stamp-vti b/doc/stamp-vti index 3c7f7b2..9a06fab 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 13 November 2013 +@set UPDATED 16 November 2013 @set UPDATED-MONTH November 2013 @set EDITION 3.0.14-rc0 @set VERSION 3.0.14-rc0 diff --git a/doc/version.texi b/doc/version.texi index 3c7f7b2..9a06fab 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 13 November 2013 +@set UPDATED 16 November 2013 @set UPDATED-MONTH November 2013 @set EDITION 3.0.14-rc0 @set VERSION 3.0.14-rc0 -- cgit v1.2.1