diff --git a/ChangeLog b/ChangeLog index ad13df5d..d6bbd59e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-11-15 Andrew Haley + + * doc/libffi.texi (Closure Example): Fix the sample code. + * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt. + 2013-11-15 Andrew Haley * testsuite/libffi.call/va_struct1.c (main): Fix broken test. diff --git a/doc/libffi.info b/doc/libffi.info index 4d42f5be..de69aaf4 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 d13c5c02..57dae0b8 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 3c7f7b21..9a06fab5 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 3c7f7b21..9a06fab5 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