From: Jay Freeman (saurik) Date: Sun, 15 Nov 2009 23:10:15 +0000 (+0000) Subject: Fixed some CYInitialize issues noticed back on the iPhone. X-Git-Tag: v0.9.432~164 X-Git-Url: https://git.saurik.com/cycript.git/commitdiff_plain/09eee478cd3085633d87ddc8a7997ff3d000102e?ds=inline Fixed some CYInitialize issues noticed back on the iPhone. --- diff --git a/Execute.cpp b/Execute.cpp index 3135c2c..a517fb4 100644 --- a/Execute.cpp +++ b/Execute.cpp @@ -1279,7 +1279,13 @@ extern "C" void CydgetSetupContext(JSGlobalContextRef context) { CYSetupContext(context); } +static bool initialized_ = false; + void CYInitializeDynamic() { + if (!initialized_) + initialized_ = true; + else return; + CYInitializeStatic(); _sqlcall(sqlite3_open("/usr/lib/libcycript.db", &Bridge_)); diff --git a/Handler.mm b/Handler.mm index 79528c4..38ef638 100644 --- a/Handler.mm +++ b/Handler.mm @@ -38,6 +38,7 @@ /* }}} */ #include "cycript.hpp" +#include "JavaScript.hpp" #include "Pooling.hpp" #include "Parser.hpp" @@ -173,7 +174,7 @@ extern "C" void CYHandleClient(apr_pool_t *pool, int socket) { } extern "C" void CYHandleServer(pid_t pid) { - CYInitialize(); + CYInitializeDynamic(); int socket(_syscall(::socket(PF_UNIX, SOCK_STREAM, 0))); try { struct sockaddr_un address;