Author: cazfi Date: Sat Aug 6 15:54:13 2016 New Revision: 33468 URL: http://svn.gna.org/viewcvs/freeciv?rev=33468&view=rev Log: Make sure resource identifiers from previous ruleset do not play havoc when new ruleset is loading, and only some of the identifiers in memory are from new ruleset.
See bug #24912 Modified: trunk/server/ruleset.c Modified: trunk/server/ruleset.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/ruleset.c?rev=33468&r1=33467&r2=33468&view=diff ============================================================================== --- trunk/server/ruleset.c (original) +++ trunk/server/ruleset.c Sat Aug 6 15:54:13 2016 @@ -3297,13 +3297,27 @@ ok = FALSE; break; } + + if (!ok) { + break; + } + + i++; + } extra_type_by_cause_iterate_end; + } + + if (ok) { + /* This can't be part of previous loop as we don't want random data from previous + * ruleset to play havoc on us when we have only some resource identifiers loaded + * from the new ruleset. */ + extra_type_by_cause_iterate(EC_RESOURCE, pres) { extra_type_by_cause_iterate(EC_RESOURCE, pres2) { - if (presource->data.resource->id_old_save == pres2->data.resource->id_old_save - && presource != pres2) { + if (pres->data.resource->id_old_save == pres2->data.resource->id_old_save + && pres != pres2) { ruleset_error(LOG_ERROR, "\"%s\" [%s] has the same identifier as [%s].", filename, - rsection, + extra_rule_name(pres), extra_rule_name(pres2)); ok = FALSE; break; @@ -3313,8 +3327,6 @@ if (!ok) { break; } - - i++; } extra_type_by_cause_iterate_end; } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits