]> git.saurik.com Git - cycript.git/commitdiff
Allow expressions as array subscripts in @encode.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 21 Mar 2013 06:45:48 +0000 (23:45 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 21 Mar 2013 06:45:48 +0000 (23:45 -0700)
Execute.cpp
ObjectiveC/Replace.cpp
ObjectiveC/Syntax.hpp

index 74f29f229358d098fc08688df04f064e28ead47c..36f475b470b3b7630171bdeb5bf2a13986b41fe2 100644 (file)
@@ -1178,7 +1178,7 @@ static JSValueRef CYValue_callAsFunction_toCYON(JSContextRef context, JSObjectRe
 static JSValueRef Pointer_callAsFunction_toCYON(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry {
     Pointer *internal(reinterpret_cast<Pointer *>(JSObjectGetPrivate(_this)));
     if (internal->length_ != _not(size_t)) {
 static JSValueRef Pointer_callAsFunction_toCYON(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry {
     Pointer *internal(reinterpret_cast<Pointer *>(JSObjectGetPrivate(_this)));
     if (internal->length_ != _not(size_t)) {
-        JSObjectRef Array(CYGetCachedObject(context, Array_s));
+        JSObjectRef Array(CYGetCachedObject(context, CYJSString("Array_prototype")));
         JSObjectRef toCYON(CYCastJSObject(context, CYGetProperty(context, Array, toCYON_s)));
         return CYCallAsFunction(context, toCYON, _this, count, arguments);
     } else {
         JSObjectRef toCYON(CYCastJSObject(context, CYGetProperty(context, Array, toCYON_s)));
         return CYCallAsFunction(context, toCYON, _this, count, arguments);
     } else {
index e0601db76cb44b016b1f5f8a6278d8d6c46c8618..11262318e4f98972e0748747cb14984e515e4531 100644 (file)
@@ -79,7 +79,7 @@ CYStatement *CYClassStatement::Replace(CYContext &context) {
 }
 
 CYExpression *CYTypeArrayOf::Replace(CYContext &context) {
 }
 
 CYExpression *CYTypeArrayOf::Replace(CYContext &context) {
-    return $ CYCall($ CYDirectMember(next_->Replace(context), $ CYString("arrayOf")), $ CYArgument($ CYNumber(size_)));
+    return $ CYCall($ CYDirectMember(next_->Replace(context), $ CYString("arrayOf")), $ CYArgument(size_));
 }
 
 CYExpression *CYTypeConstant::Replace(CYContext &context) {
 }
 
 CYExpression *CYTypeConstant::Replace(CYContext &context) {
index 96e4604ec824c9bb746f35c8199bfe55c13b328b..effaa24c7b316f3dcb338e3ce6391be9edd896e9 100644 (file)
@@ -38,9 +38,9 @@ struct CYTypeModifier :
 struct CYTypeArrayOf :
     CYTypeModifier
 {
 struct CYTypeArrayOf :
     CYTypeModifier
 {
-    size_t size_;
+    CYExpression *size_;
 
 
-    CYTypeArrayOf(size_t size, CYTypeModifier *next = NULL) :
+    CYTypeArrayOf(CYExpression *size, CYTypeModifier *next = NULL) :
         CYTypeModifier(next),
         size_(size)
     {
         CYTypeModifier(next),
         size_(size)
     {