]> git.saurik.com Git - cycript.git/commitdiff
I don't understand what the hell is wrong with Apple's compiler, but it does not...
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 11 Nov 2009 04:31:43 +0000 (04:31 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 11 Nov 2009 04:31:43 +0000 (04:31 +0000)
ObjectiveC/Library.mm

index 88c7426ee9ca101f7a6715a5c188ca0fc2c3f669..1f2aea2c1fc4f32bdbf3e43d72fe6493f66b4017 100644 (file)
 
 #define CYSadTry { \
     @try
-#define CYSadCatch \
+#define CYSadCatch(value) \
     @catch (NSException *error ) { \
         throw CYJSError(context, CYCastJSValue(context, error)); \
+        return value; \
     } \
 }
 
@@ -1322,11 +1323,11 @@ static SEL CYCastSEL(JSContextRef context, JSValueRef value) {
 
 void *CYObjectiveC_ExecuteStart(JSContextRef context) { CYSadTry {
     return (void *) [[NSAutoreleasePool alloc] init];
-} CYSadCatch }
+} CYSadCatch(NULL) }
 
 void CYObjectiveC_ExecuteEnd(JSContextRef context, void *handle) { CYSadTry {
     return [(NSAutoreleasePool *) handle release];
-} CYSadCatch }
+} CYSadCatch() }
 
 JSValueRef CYObjectiveC_RuntimeProperty(JSContextRef context, CYUTF8String name) { CYPoolTry {
     if (name == "nil")
@@ -1338,7 +1339,7 @@ JSValueRef CYObjectiveC_RuntimeProperty(JSContextRef context, CYUTF8String name)
 
 static void CYObjectiveC_CallFunction(JSContextRef context, ffi_cif *cif, void (*function)(), uint8_t *value, void **values) { CYSadTry {
     ffi_call(cif, function, value, values);
-} CYSadCatch }
+} CYSadCatch() }
 
 static bool CYObjectiveC_PoolFFI(apr_pool_t *pool, JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, JSValueRef value) { CYSadTry {
     switch (type->primitive) {
@@ -1356,7 +1357,7 @@ static bool CYObjectiveC_PoolFFI(apr_pool_t *pool, JSContextRef context, sig::Ty
     }
 
     return true;
-} CYSadCatch }
+} CYSadCatch(false) }
 
 static JSValueRef CYObjectiveC_FromFFI(JSContextRef context, sig::Type *type, ffi_type *ffi, void *data, bool initialize, JSObjectRef owner) { CYPoolTry {
     switch (type->primitive) {