From 9e6f1cc494a329d32d0d8f0ca0acd563b3acaf7f Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 4 Oct 2009 09:12:25 +0000 Subject: minor core cleanups --- src/core/func.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/core/func.cc') diff --git a/src/core/func.cc b/src/core/func.cc index be5aca3..4072f39 100644 --- a/src/core/func.cc +++ b/src/core/func.cc @@ -20,11 +20,15 @@ Func::Registry Func::func_registry; Func * Func::add(const char *name, FuncPtr functionptr, bool shared) { + if (!name || !functionptr) + return 0; + Func *func = 0; Registry::iterator it = func_registry.find(name); if (it == func_registry.end()) { - func = new Func(name, (void *)functionptr, shared ? Shared : 0); - func_registry[std::string(name)] = func; + std::string funcname(name); + func = new Func(funcname.c_str(), (void *)functionptr, shared ? Shared : 0); + func_registry[func->name()] = func; //con_debug << "Function '" << name << "' registered." << std::endl; } else { con_warn << "Function '" << name << "' already registered!" << std::endl; @@ -35,10 +39,14 @@ Func * Func::add(const char *name, FuncPtr functionptr, bool shared) Func *Func::add(const char *name, GameFuncPtr gamefunctionptr) { + if (!name || !gamefunctionptr) + return 0; + Func *func = 0; Registry::iterator it = func_registry.find(name); if (it == func_registry.end()) { - func = new Func(name, (void *)gamefunctionptr, Game); + std::string funcname(name); + func = new Func(funcname.c_str(), (void *)gamefunctionptr, Game); func_registry[func->name()] = func; //con_debug << "Function '" << name << "' registered." << std::endl; } else { @@ -50,10 +58,14 @@ Func *Func::add(const char *name, GameFuncPtr gamefunctionptr) Func *Func::add(const char *name, TargetFuncPtr targetfunctionptr) { + if (!name || !targetfunctionptr) + return 0; + Func *func = 0; Registry::iterator it = func_registry.find(name); if (it == func_registry.end()) { - func = new Func(name, (void *)targetfunctionptr, Game | Target); + std::string funcname(name); + func = new Func(funcname.c_str(), (void *)targetfunctionptr, Game | Target); func_registry[func->name()] = func; //con_debug << "Function '" << name << "' registered." << std::endl; } else { -- cgit v1.2.3