aboutsummaryrefslogtreecommitdiffstats
path: root/ext/fiddle/closure.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fiddle/closure.c')
-rw-r--r--ext/fiddle/closure.c7
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;