From dbf9d389223676006c85201505a5989adc04c978 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Wed, 29 Jan 2014 09:30:21 -0800 Subject: [PATCH] Do not use FFI to sel_registerName for [] syntax. --- ObjectiveC/Library.mm | 6 ++++-- ObjectiveC/Replace.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ObjectiveC/Library.mm b/ObjectiveC/Library.mm index 57bfcc7..b707a90 100644 --- a/ObjectiveC/Library.mm +++ b/ObjectiveC/Library.mm @@ -1470,8 +1470,10 @@ static SEL CYCastSEL(JSContextRef context, JSValueRef value) { if (JSValueIsObjectOfClass(context, value, Selector_)) { Selector_privateData *internal(reinterpret_cast(JSObjectGetPrivate((JSObjectRef) value))); return reinterpret_cast(internal->value_); - } else - return CYCastPointer(context, value); + } else { + CYPool pool; + return sel_registerName(CYPoolCString(pool, context, value)); + } } void *CYObjectiveC_ExecuteStart(JSContextRef context) { CYSadTry { diff --git a/ObjectiveC/Replace.cpp b/ObjectiveC/Replace.cpp index 5c77599..1502aa2 100644 --- a/ObjectiveC/Replace.cpp +++ b/ObjectiveC/Replace.cpp @@ -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) { -- 2.47.2