]> git.saurik.com Git - cycript.git/commitdiff
Replace CydgetPoolParse with CydgetMemoryParse.
authorJay Freeman (saurik) <saurik@saurik.com>
Fri, 21 Jun 2013 13:13:37 +0000 (06:13 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Fri, 21 Jun 2013 14:49:43 +0000 (07:49 -0700)
Library.cpp

index 37e2b3c4cd6dd56786425788bb8c829b8e5bc375..4b7f115aa313ebb53be6d3e4bf15d9d419a41522 100644 (file)
@@ -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<uint16_t *>(malloc(bytes)));
+    memcpy(copy, utf16.data, bytes);
+
+    *data = copy;
     *size = utf16.size;
 }