X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cvar.c;h=7936c92356be359c13748eca7afbec3250df8ac2;hp=cbe8b0f6b56205446f0da1c285de48c6c25fcd74;hb=7b70abc823ed3391ea31938fbc2188bc2bf45d12;hpb=c8551c9a1e2767b4ef4908a9198c8d238e2297d2 diff --git a/cvar.c b/cvar.c index cbe8b0f6..7936c923 100644 --- a/cvar.c +++ b/cvar.c @@ -517,17 +517,12 @@ void Cvar_RegisterVirtual(cvar_t *variable, const char *name ) return; } - if(!variable->aliases) - variable->aliases = (char **)Z_Malloc(sizeof(char *) * 2); // For NULL terminator - else - variable->aliases = (char **)Mem_Realloc(zonemempool, variable->aliases, sizeof(char *) * (variable->aliases_size + 1)); - - variable->aliases[variable->aliases_size + 1] = NULL; - - // Add to it - variable->aliases[variable->aliases_size] = (char *)Z_Malloc(strlen(name) + 1); - memcpy(variable->aliases[variable->aliases_size], name, strlen(name) + 1); - variable->aliases_size++; + // Resize the variable->aliases list to have room for another entry and a null terminator. + // This zero-pads when resizing, so we don't need to write the NULL terminator manually here. + // Also if aliases is NULL this allocates fresh for the correct size, so it's fine to just do this. + variable->aliases = (char **)Z_Realloc(variable->aliases, sizeof(char *) * (variable->aliases_size + 2)); + // Add the new alias, and increment the number of aliases in the list + variable->aliases[variable->aliases_size++] = (char *)Z_strdup(name); // link to head of list in this hash table index hash = (cvar_hash_t *)Z_Malloc(sizeof(cvar_hash_t));