]> git.saurik.com Git - cycript.git/commitdiff
Tighten alignment of FFI return values, correctly.
authorJay Freeman (saurik) <saurik@saurik.com>
Mon, 4 Jan 2016 09:28:45 +0000 (01:28 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 4 Jan 2016 09:28:45 +0000 (01:28 -0800)
Execute.cpp

index 5dbdd58fc66f712c3dd7747818990110c20d5264..986b88f4cce4888baa495f4f46b1f43ae62c077b 100644 (file)
@@ -1242,7 +1242,7 @@ JSValueRef CYCallFunction(CYPool &pool, JSContextRef context, size_t setups, voi
         element.type->PoolFFI(&pool, context, ffi, values[index], arguments[index - setups]);
     }
 
-    uint8_t value[cif->rtype->size];
+    uint8_t *value(pool.malloc<uint8_t>(std::max<size_t>(cif->rtype->size, sizeof(ffi_arg)), std::max<size_t>(cif->rtype->alignment, alignof(ffi_arg))));
 
     void (*call)(CYPool &, JSContextRef, ffi_cif *, void (*)(), void *, void **) = &CYCallFunction;
     // XXX: this only supports one hook, but it is a bad idea anyway