Author: cazfi Date: Fri Apr 15 15:30:28 2016 New Revision: 32408 URL: http://svn.gna.org/viewcvs/freeciv?rev=32408&view=rev Log: Free individual items from allowed_govs, allowed_styles, and allowed_terrains vectors.
See bug #24561 Modified: trunk/common/game.c trunk/common/game.h trunk/server/ruleset.c trunk/tools/ruledit/rulesave.c Modified: trunk/common/game.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/game.c?rev=32408&r1=32407&r2=32408&view=diff ============================================================================== --- trunk/common/game.c (original) +++ trunk/common/game.c Fri Apr 15 15:30:28 2016 @@ -549,6 +549,9 @@ game.server.ruledit.allowed_govs = NULL; game.server.ruledit.allowed_terrains = NULL; game.server.ruledit.allowed_styles = NULL; + game.server.ruledit.nc_agovs = NULL; + game.server.ruledit.nc_aterrs = NULL; + game.server.ruledit.nc_astyles = NULL; game.server.ruledit.ag_count = 0; game.server.ruledit.at_count = 0; game.server.ruledit.as_count = 0; @@ -624,16 +627,28 @@ game.server.ruledit.embedded_nations = NULL; game.server.ruledit.embedded_nations_count = 0; if (game.server.ruledit.allowed_govs != NULL) { + for (i = 0; i < game.server.ruledit.ag_count; i++) { + free(game.server.ruledit.nc_agovs[i]); + } free(game.server.ruledit.allowed_govs); game.server.ruledit.allowed_govs = NULL; + game.server.ruledit.nc_agovs = NULL; } if (game.server.ruledit.allowed_terrains != NULL) { + for (i = 0; i < game.server.ruledit.at_count; i++) { + free(game.server.ruledit.nc_aterrs[i]); + } free(game.server.ruledit.allowed_terrains); game.server.ruledit.allowed_terrains = NULL; + game.server.ruledit.nc_aterrs = NULL; } if (game.server.ruledit.allowed_styles != NULL) { + for (i = 0; i < game.server.ruledit.as_count; i++) { + free(game.server.ruledit.nc_astyles[i]); + } free(game.server.ruledit.allowed_styles); game.server.ruledit.allowed_styles = NULL; + game.server.ruledit.nc_astyles = NULL; } } } Modified: trunk/common/game.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/game.h?rev=32408&r1=32407&r2=32408&view=diff ============================================================================== --- trunk/common/game.h (original) +++ trunk/common/game.h Fri Apr 15 15:30:28 2016 @@ -264,10 +264,13 @@ char **embedded_nations; size_t embedded_nations_count; const char **allowed_govs; + char **nc_agovs; size_t ag_count; const char **allowed_terrains; + char **nc_aterrs; size_t at_count; const char **allowed_styles; + char **nc_astyles; size_t as_count; } ruledit; } server; Modified: trunk/server/ruleset.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/ruleset.c?rev=32408&r1=32407&r2=32408&view=diff ============================================================================== --- trunk/server/ruleset.c (original) +++ trunk/server/ruleset.c Fri Apr 15 15:30:28 2016 @@ -4143,8 +4143,10 @@ "compatibility.allowed_govs"); if (vec != NULL) { /* Copy to persistent vector */ - game.server.ruledit.allowed_govs + game.server.ruledit.nc_agovs = fc_malloc(game.server.ruledit.ag_count * sizeof(char *)); + game.server.ruledit.allowed_govs = + (const char **)game.server.ruledit.nc_agovs; for (j = 0; j < game.server.ruledit.ag_count; j++) { game.server.ruledit.allowed_govs[j] = fc_strdup(vec[j]); @@ -4157,8 +4159,10 @@ "compatibility.allowed_terrains"); if (vec != NULL) { /* Copy to persistent vector */ - game.server.ruledit.allowed_terrains + game.server.ruledit.nc_aterrs = fc_malloc(game.server.ruledit.at_count * sizeof(char *)); + game.server.ruledit.allowed_terrains = + (const char **)game.server.ruledit.nc_aterrs; for (j = 0; j < game.server.ruledit.at_count; j++) { game.server.ruledit.allowed_terrains[j] = fc_strdup(vec[j]); @@ -4171,8 +4175,10 @@ "compatibility.allowed_styles"); if (vec != NULL) { /* Copy to persistent vector */ - game.server.ruledit.allowed_styles + game.server.ruledit.nc_astyles = fc_malloc(game.server.ruledit.as_count * sizeof(char *)); + game.server.ruledit.allowed_styles = + (const char **)game.server.ruledit.nc_astyles; for (j = 0; j < game.server.ruledit.as_count; j++) { game.server.ruledit.allowed_styles[j] = fc_strdup(vec[j]); Modified: trunk/tools/ruledit/rulesave.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruledit/rulesave.c?rev=32408&r1=32407&r2=32408&view=diff ============================================================================== --- trunk/tools/ruledit/rulesave.c (original) +++ trunk/tools/ruledit/rulesave.c Fri Apr 15 15:30:28 2016 @@ -1588,15 +1588,18 @@ "default_traits", ""); if (game.server.ruledit.allowed_govs != NULL) { - secfile_insert_str_vec(sfile, game.server.ruledit.allowed_govs, game.server.ruledit.ag_count, + secfile_insert_str_vec(sfile, game.server.ruledit.allowed_govs, + game.server.ruledit.ag_count, "compatibility.allowed_govs"); } if (game.server.ruledit.allowed_terrains != NULL) { - secfile_insert_str_vec(sfile, game.server.ruledit.allowed_terrains, game.server.ruledit.at_count, + secfile_insert_str_vec(sfile, game.server.ruledit.allowed_terrains, + game.server.ruledit.at_count, "compatibility.allowed_terrains"); } if (game.server.ruledit.allowed_styles != NULL) { - secfile_insert_str_vec(sfile, game.server.ruledit.allowed_styles, game.server.ruledit.as_count, + secfile_insert_str_vec(sfile, game.server.ruledit.allowed_styles, + game.server.ruledit.as_count, "compatibility.allowed_styles"); } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits