diff options
author | Stijn Buys <ingar@osirion.org> | 2009-10-04 09:12:25 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2009-10-04 09:12:25 +0000 |
commit | 9e6f1cc494a329d32d0d8f0ca0acd563b3acaf7f (patch) | |
tree | 96897c0ffe4a6027261c7c0a29c283af595266f5 /src/core/func.cc | |
parent | 0362ba4c084e8bd22f476ea6086bbc47323175bf (diff) |
minor core cleanups
Diffstat (limited to 'src/core/func.cc')
-rw-r--r-- | src/core/func.cc | 20 |
1 files changed, 16 insertions, 4 deletions
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 { |