]> git.saurik.com Git - cycript.git/commitdiff
Do not use FFI to sel_registerName for [] syntax.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 29 Jan 2014 17:30:21 +0000 (09:30 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 29 Jan 2014 17:30:21 +0000 (09:30 -0800)
ObjectiveC/Library.mm
ObjectiveC/Replace.cpp

index 57bfcc7d9cee8eb0272edd41b8790b185deb4bf1..b707a906a929256bec9200e2bc65b6185585900f 100644 (file)
@@ -1470,8 +1470,10 @@ static SEL CYCastSEL(JSContextRef context, JSValueRef value) {
     if (JSValueIsObjectOfClass(context, value, Selector_)) {
         Selector_privateData *internal(reinterpret_cast<Selector_privateData *>(JSObjectGetPrivate((JSObjectRef) value)));
         return reinterpret_cast<SEL>(internal->value_);
-    } else
-        return CYCastPointer<SEL>(context, value);
+    } else {
+        CYPool pool;
+        return sel_registerName(CYPoolCString(pool, context, value));
+    }
 }
 
 void *CYObjectiveC_ExecuteStart(JSContextRef context) { CYSadTry {
index 5c7759921067c727dd436835ff3baf66f868c4ed..1502aa22c09abf3224fd436546f4bb0db2097376 100644 (file)
@@ -206,7 +206,7 @@ CYExpression *CYSendDirect::Replace(CYContext &context) {
             argument = &(*argument)->next_;
     }
 
-    return $C2($V("objc_msgSend"), self_, ($ CYSelector(selector))->Replace(context), arguments_);
+    return $C2($V("objc_msgSend"), self_, selector->Replace(context), arguments_);
 }
 
 CYExpression *CYSendSuper::Replace(CYContext &context) {