From: Jay Freeman (saurik) Date: Fri, 21 Jun 2013 13:13:37 +0000 (-0700) Subject: Replace CydgetPoolParse with CydgetMemoryParse. X-Git-Tag: v0.9.500%b1~63 X-Git-Url: https://git.saurik.com/cycript.git/commitdiff_plain/b4a1ede1411c45b4a8d0684e3e77949836be5759?ds=sidebyside Replace CydgetPoolParse with CydgetMemoryParse. --- diff --git a/Library.cpp b/Library.cpp index 37e2b3c..4b7f115 100644 --- a/Library.cpp +++ b/Library.cpp @@ -243,7 +243,7 @@ void CYArrayPush(JSContextRef context, JSObjectRef array, JSValueRef value) { CYThrow(context, exception); } -extern "C" void CydgetPoolParse(apr_pool_t *remote, const uint16_t **data, size_t *size) { +extern "C" void CydgetMemoryParse(const uint16_t **data, size_t *size) { CYLocalPool local; CYUTF8String utf8(CYPoolUTF8String(local, CYUTF16String(*data, *size))); @@ -262,10 +262,14 @@ extern "C" void CydgetPoolParse(apr_pool_t *remote, const uint16_t **data, size_ out << *driver.program_; std::string code(str.str()); - CYPool pool(remote); + CYPool pool; CYUTF16String utf16(CYPoolUTF16String(pool, CYUTF8String(code.c_str(), code.size()))); - *data = utf16.data; + size_t bytes(utf16.size * sizeof(uint16_t)); + uint16_t *copy(reinterpret_cast(malloc(bytes))); + memcpy(copy, utf16.data, bytes); + + *data = copy; *size = utf16.size; }