X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/baea637579c120f1ee2be6d2b4404e21fa734d74..a5662a5364816f852acb056d5c2b2fc94e0c0a5c:/Internal.hpp diff --git a/Internal.hpp b/Internal.hpp index 72b2986..87ff055 100644 --- a/Internal.hpp +++ b/Internal.hpp @@ -1,5 +1,5 @@ /* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2014 Jay Freeman (saurik) + * Copyright (C) 2009-2015 Jay Freeman (saurik) */ /* GNU Affero General Public License, Version 3 {{{ */ @@ -197,11 +197,13 @@ struct Closure_privateData : { JSGlobalContextRef context_; JSObjectRef function_; + JSValueRef (*adapter_)(JSContextRef, size_t, JSValueRef[], JSObjectRef); - Closure_privateData(JSContextRef context, JSObjectRef function, const sig::Signature &signature) : + Closure_privateData(JSContextRef context, JSObjectRef function, JSValueRef (*adapter)(JSContextRef, size_t, JSValueRef[], JSObjectRef), const sig::Signature &signature) : cy::Functor(signature, NULL), context_(CYGetJSContext(context)), - function_(function) + function_(function), + adapter_(adapter) { //XXX:JSGlobalContextRetain(context_); JSValueProtect(context_, function_); @@ -213,7 +215,7 @@ struct Closure_privateData : } }; -Closure_privateData *CYMakeFunctor_(JSContextRef context, JSObjectRef function, const sig::Signature &signature, void (*callback)(ffi_cif *, void *, void **, void *)); +Closure_privateData *CYMakeFunctor_(JSContextRef context, JSObjectRef function, const sig::Signature &signature, JSValueRef (*adapter)(JSContextRef, size_t, JSValueRef[], JSObjectRef)); void CYExecuteClosure(ffi_cif *cif, void *result, void **arguments, void *arg, JSValueRef (*adapter)(JSContextRef, size_t, JSValueRef[], JSObjectRef)); #endif/*CYCRIPT_INTERNAL_HPP*/