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

Reply via email to