From: Jay Freeman (saurik) Date: Sun, 19 Jan 2014 20:14:58 +0000 (-0800) Subject: CYONify pointers as the address of their values. X-Git-Tag: v0.9.500~35 X-Git-Url: https://git.saurik.com/cycript.git/commitdiff_plain/4dd55d2fafdf8e8c93d16023f4d09de533113557?hp=aa8f2b2cad24825ef2a2c82e65db1554bbf426e2 CYONify pointers as the address of their values. --- diff --git a/Execute.cpp b/Execute.cpp index be05f7b..7b39bb9 100644 --- a/Execute.cpp +++ b/Execute.cpp @@ -127,6 +127,7 @@ static JSClassRef Struct_; JSStringRef Array_s; JSStringRef cy_s; +JSStringRef cyi_s; JSStringRef length_s; JSStringRef message_s; JSStringRef name_s; @@ -1244,7 +1245,10 @@ static JSValueRef Pointer_callAsFunction_toCYON(JSContextRef context, JSObjectRe JSObjectRef Array(CYGetCachedObject(context, CYJSString("Array_prototype"))); JSObjectRef toCYON(CYCastJSObject(context, CYGetProperty(context, Array, toCYON_s))); return CYCallAsFunction(context, toCYON, _this, count, arguments); - } else { + } else try { + CYPool pool; + return CYCastJSValue(context, pool.strcat("&", CYPoolCCYON(pool, context, CYGetProperty(context, _this, cyi_s)), NULL)); + } catch (const CYException &e) { char string[32]; sprintf(string, "%p", internal->value_); return CYCastJSValue(context, string); @@ -1473,6 +1477,7 @@ void CYInitializeDynamic() { Array_s = JSStringCreateWithUTF8CString("Array"); cy_s = JSStringCreateWithUTF8CString("$cy"); + cyi_s = JSStringCreateWithUTF8CString("$cyi"); length_s = JSStringCreateWithUTF8CString("length"); message_s = JSStringCreateWithUTF8CString("message"); name_s = JSStringCreateWithUTF8CString("name"); diff --git a/JavaScript.hpp b/JavaScript.hpp index 70887c4..4ce43b6 100644 --- a/JavaScript.hpp +++ b/JavaScript.hpp @@ -39,6 +39,7 @@ extern JSStringRef Array_s; extern JSStringRef cy_s; +extern JSStringRef cyi_s; extern JSStringRef length_s; extern JSStringRef message_s; extern JSStringRef name_s;