]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
cvar: Check if cvar is NULL before adding callback. Implement Cvar_Callback to fire...
authorcloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 20 Dec 2020 18:55:23 +0000 (18:55 +0000)
committercloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 20 Dec 2020 18:55:23 +0000 (18:55 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@13074 d7cf8633-e32d-0410-b094-e92efae38249

cvar.c
cvar.h

diff --git a/cvar.c b/cvar.c
index 9b77bdabe18a945079cef8faf73bfe7bc5bf1bd6..f60a212eb9c7ed9d5ef0976a68b0620266dc8cc1 100644 (file)
--- a/cvar.c
+++ b/cvar.c
@@ -365,6 +365,18 @@ void Cvar_UpdateAllAutoCvars(cvar_state_t *cvars)
                Cvar_UpdateAutoCvar(var);
 }
 
+void Cvar_Callback(cvar_t *var)
+{
+       if (var == NULL)
+       {
+               Con_Print("Cvar_Callback: var == NULL\n");
+               return;
+       }
+
+       if(var->callback)
+               var->callback(var);
+}
+
 /*
 ============
 Cvar_Set
@@ -413,8 +425,7 @@ static void Cvar_SetQuick_Internal (cvar_t *var, const char *value)
        Cvar_UpdateAutoCvar(var);
 
        // Call the function stored in the cvar for bounds checking, cleanup, etc
-       if (var->callback)
-               var->callback(var);
+       Cvar_Callback(var);
 }
 
 void Cvar_SetQuick (cvar_t *var, const char *value)
@@ -472,6 +483,11 @@ void Cvar_SetValue(cvar_state_t *cvars, const char *var_name, float value)
 
 void Cvar_RegisterCallback(cvar_t *variable, void (*callback)(cvar_t *))
 {
+       if (variable == NULL)
+       {
+               Con_Print("Cvar_RegisterCallback: var == NULL\n");
+               return;
+       }
        variable->callback = callback;
 }
 
diff --git a/cvar.h b/cvar.h
index e54e1817f0f46a807917dc8b5a45fcf1ba773d88..18010dec7c1af161ee0b920a17d7863cdb4389e0 100644 (file)
--- a/cvar.h
+++ b/cvar.h
@@ -115,6 +115,8 @@ void Cvar_RegisterVariable(cvar_t *variable);
 
 qbool Cvar_Readonly (cvar_t *var, const char *cmd_name);
 
+void Cvar_Callback(cvar_t *var);
+
 /// equivelant to "<name> <variable>" typed at the console
 void Cvar_Set (cvar_state_t *cvars, const char *var_name, const char *value);