From 74e8c566f494aa972bf7461a0cf32d622c30dcf9 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Fri, 8 Jun 2012 03:09:38 -0700 Subject: [PATCH] Add static size and alignment properties to Type. --- Execute.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Execute.cpp b/Execute.cpp index 2d77e21..8c9a48f 100644 --- a/Execute.cpp +++ b/Execute.cpp @@ -1135,6 +1135,16 @@ static JSValueRef Pointer_callAsFunction_toCYON(JSContextRef context, JSObjectRe } } CYCatch } +static JSValueRef Type_getProperty_alignment(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { + Type_privateData *internal(reinterpret_cast(JSObjectGetPrivate(object))); + return CYCastJSValue(context, internal->GetFFI()->alignment); +} + +static JSValueRef Type_getProperty_size(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) { + Type_privateData *internal(reinterpret_cast(JSObjectGetPrivate(object))); + return CYCastJSValue(context, internal->GetFFI()->size); +} + static JSValueRef Type_callAsFunction_toString(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry { Type_privateData *internal(reinterpret_cast(JSObjectGetPrivate(_this))); CYPool pool; @@ -1183,6 +1193,12 @@ namespace cy { JSStaticFunction const * const Functor::StaticFunctions = Functor_staticFunctions; } +static JSStaticValue Type_staticValues[3] = { + {"alignment", &Type_getProperty_alignment, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete}, + {"size", &Type_getProperty_size, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete}, + {NULL, NULL, NULL, 0} +}; + static JSStaticFunction Type_staticFunctions[4] = { {"toCYON", &Type_callAsFunction_toCYON, kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete}, {"toJSON", &Type_callAsFunction_toJSON, kJSPropertyAttributeDontEnum | kJSPropertyAttributeDontDelete}, @@ -1311,6 +1327,7 @@ void CYInitializeDynamic() { definition = kJSClassDefinitionEmpty; definition.className = "Type"; + definition.staticValues = Type_staticValues; definition.staticFunctions = Type_staticFunctions; definition.getProperty = &Type_getProperty; definition.callAsFunction = &Type_callAsFunction; -- 2.49.0