Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-10-04 09:12:25 +0000
committerStijn Buys <ingar@osirion.org>2009-10-04 09:12:25 +0000
commit9e6f1cc494a329d32d0d8f0ca0acd563b3acaf7f (patch)
tree96897c0ffe4a6027261c7c0a29c283af595266f5 /src/core/func.cc
parent0362ba4c084e8bd22f476ea6086bbc47323175bf (diff)
minor core cleanups
Diffstat (limited to 'src/core/func.cc')
-rw-r--r--src/core/func.cc20
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 {