]> git.saurik.com Git - cycript.git/blobdiff - ObjectiveC/Library.mm
Allow APR link flags to be configure overridden.
[cycript.git] / ObjectiveC / Library.mm
index 4215453ce67ee8e38554fdd7fd2465ef9d4a03a2..59006c75fd08f68c07bbe3d4a546e85cd3e6c5eb 100644 (file)
@@ -32,7 +32,6 @@
 #ifdef __APPLE__
 #include <CoreFoundation/CoreFoundation.h>
 #include <JavaScriptCore/JSStringRefCF.h>
-#include <WebKit/WebScriptObject.h>
 #include <objc/runtime.h>
 #endif
 
@@ -162,10 +161,9 @@ enum {
 JSValueRef CYSendMessage(CYPool &pool, JSContextRef context, id self, Class super, SEL _cmd, size_t count, const JSValueRef arguments[], bool initialize, JSValueRef *exception);
 
 /* Objective-C Pool Release {{{ */
-apr_status_t CYPoolRelease_(void *data) {
+void CYPoolRelease_(void *data) {
     id object(reinterpret_cast<id>(data));
     [object release];
-    return APR_SUCCESS;
 }
 
 id CYPoolRelease_(CYPool *pool, id object) {
@@ -174,7 +172,7 @@ id CYPoolRelease_(CYPool *pool, id object) {
     else if (pool == NULL)
         return [object autorelease];
     else {
-        apr_pool_cleanup_register(*pool, object, &CYPoolRelease_, &apr_pool_cleanup_null);
+        pool->atexit(CYPoolRelease_);
         return object;
     }
 }
@@ -186,15 +184,11 @@ Type_ CYPoolRelease(CYPool *pool, Type_ object) {
 /* }}} */
 /* Objective-C Strings {{{ */
 const char *CYPoolCString(CYPool &pool, JSContextRef context, NSString *value) {
-    if (pool == NULL)
-        return [value UTF8String];
-    else {
-        size_t size([value maximumLengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1);
-        char *string(new(pool) char[size]);
-        if (![value getCString:string maxLength:size encoding:NSUTF8StringEncoding])
-            throw CYJSError(context, "[NSString getCString:maxLength:encoding:] == NO");
-        return string;
-    }
+    size_t size([value maximumLengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1);
+    char *string(new(pool) char[size]);
+    if (![value getCString:string maxLength:size encoding:NSUTF8StringEncoding])
+        throw CYJSError(context, "[NSString getCString:maxLength:encoding:] == NO");
+    return string;
 }
 
 JSStringRef CYCopyJSString(JSContextRef context, NSString *value) {
@@ -575,7 +569,6 @@ struct PropertyAttributes {
 };
 #endif
 
-#ifndef __APPLE__
 @interface CYWebUndefined : NSObject {
 }
 
@@ -593,7 +586,6 @@ struct PropertyAttributes {
 @end
 
 #define WebUndefined CYWebUndefined
-#endif
 
 /* Bridge: CYJSObject {{{ */
 @interface CYJSObject : NSMutableDictionary {