diff options
Diffstat (limited to 'ext/fiddle/closure.c')
-rw-r--r-- | ext/fiddle/closure.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/fiddle/closure.c b/ext/fiddle/closure.c index 5f55d6d4f8..48520997bc 100644 --- a/ext/fiddle/closure.c +++ b/ext/fiddle/closure.c @@ -110,14 +110,13 @@ callback(ffi_cif *cif, void *resp, void **args, void *ctx) *(long *)resp = NUM2LONG(ret); break; case TYPE_CHAR: - *(char *)resp = NUM2INT(ret); + case TYPE_SHORT: + case TYPE_INT: + *(ffi_sarg *)resp = NUM2INT(ret); break; case TYPE_VOIDP: *(void **)resp = NUM2PTR(ret); break; - case TYPE_INT: - *(int *)resp = NUM2INT(ret); - break; case TYPE_DOUBLE: *(double *)resp = NUM2DBL(ret); break; |