- * Cycript is free software: you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or (at your
- * option) any later version.
+ * Cycript is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
- * Cycript is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
+ * Cycript is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
ffi_type *element(ObjectiveC(pool, type->data.data.type));
size_t size(type->data.data.size);
ffi_type *element(ObjectiveC(pool, type->data.data.type));
size_t size(type->data.data.size);
for (size_t i(0); i != size; ++i)
aggregate->elements[i] = element;
aggregate->elements[size] = NULL;
for (size_t i(0); i != size; ++i)
aggregate->elements[i] = element;
aggregate->elements[size] = NULL;
sig_ffi_types(pool, &ObjectiveC, &type->data.signature, aggregate->elements);
aggregate->elements[type->data.signature.count] = NULL;
sig_ffi_types(pool, &ObjectiveC, &type->data.signature, aggregate->elements);
aggregate->elements[type->data.signature.count] = NULL;
case string_P: return &ffi_type_pointer;
case selector_P: return &ffi_type_pointer;
case block_P: return &ffi_type_pointer;
case string_P: return &ffi_type_pointer;
case selector_P: return &ffi_type_pointer;
case block_P: return &ffi_type_pointer;
case ushort_P: return &ffi_type_ushort;
case array_P: return &ffi_type_pointer;
case pointer_P: return &ffi_type_pointer;
case ushort_P: return &ffi_type_ushort;
case array_P: return &ffi_type_pointer;
case pointer_P: return &ffi_type_pointer;
case char_P: return &ffi_type_schar;
case double_P: return &ffi_type_double;
case float_P: return &ffi_type_double;
case char_P: return &ffi_type_schar;
case double_P: return &ffi_type_double;
case float_P: return &ffi_type_double;
ffi_type *type = (*sig_ffi_type)(pool, signature->elements[0].type);
sig_ffi_types(pool, sig_ffi_type, signature, types, 1 + skip, offset);
ffi_status status = ffi_prep_cif(cif, FFI_DEFAULT_ABI, signature->count - 1 - skip + offset, type, types);
ffi_type *type = (*sig_ffi_type)(pool, signature->elements[0].type);
sig_ffi_types(pool, sig_ffi_type, signature, types, 1 + skip, offset);
ffi_status status = ffi_prep_cif(cif, FFI_DEFAULT_ABI, signature->count - 1 - skip + offset, type, types);