From 3429e25c878fb3d5192540c401d5675821c3eca5 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Tue, 10 Sep 2013 11:02:40 -0700 Subject: [PATCH] Make CYHandleClient only take a file descriptor. --- Handler.mm | 10 +++++----- cycript.hpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Handler.mm b/Handler.mm index d49274a..d15eb6a 100644 --- a/Handler.mm +++ b/Handler.mm @@ -149,8 +149,10 @@ static void *OnClient(void *data) { return NULL; } -extern "C" void CYHandleClient(CYPool &pool, int socket) { - CYClient *client(new(pool) CYClient(socket)); +extern "C" void CYHandleClient(int socket) { + // XXX: this leaks memory... really? + CYPool *pool(new CYPool()); + CYClient *client(new(*pool) CYClient(socket)); _assert(pthread_create(&client->thread_, NULL, &OnClient, client) == 0); } @@ -164,9 +166,7 @@ extern "C" void CYHandleServer(pid_t pid) { sprintf(address.sun_path, "/tmp/.s.cy.%u", pid); _syscall(connect(socket, reinterpret_cast(&address), SUN_LEN(&address))); - - // XXX: this leaks memory... really? - CYHandleClient(*new CYPool(), socket); + CYHandleClient(socket); } catch (const CYException &error) { CYPool pool; fprintf(stderr, "%s\n", error.PoolCString(pool)); diff --git a/cycript.hpp b/cycript.hpp index 52accef..5498b59 100644 --- a/cycript.hpp +++ b/cycript.hpp @@ -37,7 +37,7 @@ void CYStringify(std::ostringstream &str, const char *data, size_t size); double CYCastDouble(const char *value, size_t size); double CYCastDouble(const char *value); -extern "C" void CYHandleClient(CYPool &pool, int socket); +extern "C" void CYHandleClient(int socket); template bool CYRecvAll(int socket, Type_ *data, size_t size) { -- 2.47.2