summaryrefslogtreecommitdiff
path: root/ext/ffi_c/Function.c
diff options
context:
space:
mode:
authorWayne Meissner <wmeissner@gmail.com>2012-02-28 09:58:08 +1000
committerWayne Meissner <wmeissner@gmail.com>2012-02-28 09:58:08 +1000
commitbc42a08504a0b1584d3b94f7f9ba66d9ac7aaaa3 (patch)
tree04fccfbd32325eede5e1738db094459786f89ec1 /ext/ffi_c/Function.c
parent2631f9772bce0d15ea99271b803c9cc339bbbf26 (diff)
downloadffi-bc42a08504a0b1584d3b94f7f9ba66d9ac7aaaa3.tar.gz
Add experimental support for long double. Fixes issue #194
Diffstat (limited to 'ext/ffi_c/Function.c')
-rw-r--r--ext/ffi_c/Function.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/ffi_c/Function.c b/ext/ffi_c/Function.c
index ae38787..081f2ba 100644
--- a/ext/ffi_c/Function.c
+++ b/ext/ffi_c/Function.c
@@ -61,6 +61,7 @@ typedef int bool;
#include "Function.h"
#include "MappedType.h"
#include "Thread.h"
+#include "LongDouble.h"
typedef struct Function_ {
Pointer base;
@@ -774,6 +775,9 @@ callback_with_gvl(void* data)
case NATIVE_FLOAT64:
param = rb_float_new(*(double *) parameters[i]);
break;
+ case NATIVE_LONGDOUBLE:
+ param = rbffi_longdouble_new(*(long double *) parameters[i]);
+ break;
case NATIVE_STRING:
param = (*(void **) parameters[i] != NULL) ? rb_tainted_str_new2(*(char **) parameters[i]) : Qnil;
break;