From: Jay Freeman (saurik) Date: Mon, 13 Oct 2014 11:07:03 +0000 (-0700) Subject: Remove duplicated manually-pooled Type constructor. X-Git-Tag: v0.9.503~14 X-Git-Url: https://git.saurik.com/cycript.git/commitdiff_plain/5a28571a4cd669a302259b9e41e5c14deca5a953?ds=sidebyside Remove duplicated manually-pooled Type constructor. --- diff --git a/Internal.hpp b/Internal.hpp index e594e55..9bd4012 100644 --- a/Internal.hpp +++ b/Internal.hpp @@ -53,15 +53,6 @@ struct Type_privateData : sig::Copy(*pool_, *type_, *type); } - Type_privateData(CYPool &pool, const char *type) : - CYData(pool), - ffi_(NULL) - { - sig::Signature signature; - sig::Parse(*pool_, &signature, type, &Structor_); - type_ = signature.elements[0].type; - } - Type_privateData(const char *type) : ffi_(NULL) { diff --git a/ObjectiveC/Library.mm b/ObjectiveC/Library.mm index a5a99a4..dce14d7 100644 --- a/ObjectiveC/Library.mm +++ b/ObjectiveC/Library.mm @@ -2099,8 +2099,8 @@ static JSValueRef Internal_getProperty(JSContextRef context, JSObjectRef object, uintptr_t mask((1 << length) - 1); return CYCastJSValue(context, (field >> shift) & mask); } else { - Type_privateData type(pool, ivar_getTypeEncoding(ivar)); - return CYFromFFI(context, type.type_, type.GetFFI(), data); + auto type(new(pool) Type_privateData(ivar_getTypeEncoding(ivar))); + return CYFromFFI(context, type->type_, type->GetFFI(), data); } } @@ -2128,8 +2128,8 @@ static bool Internal_setProperty(JSContextRef context, JSObjectRef object, JSStr uintptr_t mask((1 << length) - 1); field = field & ~(mask << shift) | (uintptr_t(CYCastDouble(context, value)) & mask) << shift; } else { - Type_privateData type(pool, ivar_getTypeEncoding(ivar)); - CYPoolFFI(&pool, context, type.type_, type.GetFFI(), reinterpret_cast(self) + ivar_getOffset(ivar), value); + auto type(new(pool) Type_privateData(ivar_getTypeEncoding(ivar))); + CYPoolFFI(&pool, context, type->type_, type->GetFFI(), reinterpret_cast(self) + ivar_getOffset(ivar), value); return true; } }