void CLuaRules::LoadHandler() { //FIXME GML: this needs a mutex!!! if (luaRules != NULL) { return; } luaRules = new CLuaRules(); if (!luaRules->IsValid()) { FreeHandler(); } }
void CLuaIntro::LoadHandler() { { std::lock_guard<boost::mutex> lk(m_singleton); if (LuaIntro) return; LuaIntro = new CLuaIntro(); } if (!LuaIntro->IsValid()) { FreeHandler(); } }
void CLuaGaia::LoadHandler() { //FIXME GML: this needs a mutex!!! if (luaGaia != NULL) { return; } luaGaia = new CLuaGaia(); if (!luaGaia->IsValid()) { FreeHandler(); } }
//Removes a Connection from doubly linked list. struct ConnectionNode *RemoveConnection(struct ConnectionNode *rm) { struct ConnectionNode *r; if (rm == rm->prev) { if (rm == connections_head) connections_head = NULL; free(rm); return NULL ; } rm->prev->next = rm->next; rm->next->prev = rm->prev; if (connections_head == rm) connections_head = rm->next; r = rm->prev; FreeHandler(rm->handler); free(rm); return r; }
void FreeHandler(struct ConnectionNodeHandler *x) { if(x->prev != NULL) FreeHandler(x->prev); x->free(x); }