X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/8d20f0f1540c4c116f52e333edc57a4f549927e8..140fd60d6b7a9b922098ee5c408169573f94e33e:/JavaScript.hpp diff --git a/JavaScript.hpp b/JavaScript.hpp index 33b3db8..a162d9a 100644 --- a/JavaScript.hpp +++ b/JavaScript.hpp @@ -42,6 +42,7 @@ extern JSStringRef Array_s; extern JSStringRef cy_s; extern JSStringRef cyi_s; +extern JSStringRef cyt_s; extern JSStringRef length_s; extern JSStringRef message_s; extern JSStringRef name_s; @@ -110,11 +111,8 @@ _finline Type_ CYCastPointer(JSContextRef context, JSValueRef value, bool *guess return reinterpret_cast(CYCastPointer_(context, value, guess)); } -void CYPoolFFI(CYPool *pool, JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, JSValueRef value); -JSValueRef CYFromFFI(JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, bool initialize = false, JSObjectRef owner = NULL); - void CYCallFunction(CYPool &pool, JSContextRef context, ffi_cif *cif, void (*function)(), void *value, void **values); -JSValueRef CYCallFunction(CYPool &pool, JSContextRef context, size_t setups, void *setup[], size_t count, const JSValueRef arguments[], bool initialize, sig::Signature *signature, ffi_cif *cif, void (*function)()); +JSValueRef CYCallFunction(CYPool &pool, JSContextRef context, size_t setups, void *setup[], size_t count, const JSValueRef arguments[], bool initialize, bool variadic, const sig::Signature &signature, ffi_cif *cif, void (*function)()); bool CYIsCallable(JSContextRef context, JSValueRef value); JSValueRef CYCallAsFunction(JSContextRef context, JSObjectRef function, JSObjectRef _this, size_t count, const JSValueRef arguments[]); @@ -131,9 +129,6 @@ struct CYHook { void (*Initialize)(); void (*SetupContext)(JSContextRef); - bool (*PoolFFI)(CYPool *, JSContextRef, sig::Type *, ffi_type *, void *, JSValueRef); - JSValueRef (*FromFFI)(JSContextRef, sig::Type *, ffi_type *, void *, bool, JSObjectRef); - void *(*CastSymbol)(const char *); }; @@ -141,16 +136,16 @@ struct CYRegisterHook { CYRegisterHook(CYHook *hook); }; -JSObjectRef CYMakePointer(JSContextRef context, void *pointer, size_t length, sig::Type *type, ffi_type *ffi, JSObjectRef owner); +JSObjectRef CYMakePointer(JSContextRef context, void *pointer, const sig::Type &type, ffi_type *ffi, JSObjectRef owner); -JSObjectRef CYMakeType(JSContextRef context, const char *encoding); -JSObjectRef CYMakeType(JSContextRef context, sig::Type *type); -JSObjectRef CYMakeType(JSContextRef context, sig::Signature *signature); +JSObjectRef CYMakeType(JSContextRef context, const sig::Type &type); void CYFinalize(JSObjectRef object); size_t CYArrayLength(JSContextRef context, JSObjectRef array); JSValueRef CYArrayGet(JSContextRef context, JSObjectRef array, size_t index); + +void CYArrayPush(JSContextRef context, JSObjectRef array, size_t length, const JSValueRef arguments[]); void CYArrayPush(JSContextRef context, JSObjectRef array, JSValueRef value); const char *CYPoolCString(CYPool &pool, JSContextRef context, JSValueRef value);