diff options
author | Andrew Haley <aph@redhat.com> | 2013-11-16 06:35:51 -0500 |
---|---|---|
committer | Anthony Green <green@moxielogic.com> | 2013-11-16 06:35:51 -0500 |
commit | 31257b3189f81a199bc2902c22bc5f2d7c54ccde (patch) | |
tree | 8f5fda63ed12ed33b913095197592c12b7435d4f /doc | |
parent | db0ace3a38496af73eae3df02ef353736d16909f (diff) | |
download | libffi-31257b3189f81a199bc2902c22bc5f2d7c54ccde.tar.gz |
Fix sample closure code
Diffstat (limited to 'doc')
-rw-r--r-- | doc/libffi.info | 16 | ||||
-rw-r--r-- | doc/libffi.texi | 16 | ||||
-rw-r--r-- | doc/stamp-vti | 2 | ||||
-rw-r--r-- | doc/version.texi | 2 |
4 files changed, 20 insertions, 16 deletions
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 <ffi.h> /* 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 <ffi.h> /* 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 |