Remove dodistribute() parameter path
authorMarkus Armbruster <armbru@pond.sub.org>
Fri, 18 Feb 2011 18:01:25 +0000 (19:01 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 11 Apr 2011 20:29:12 +0000 (22:29 +0200)
It was only used to see whether a path to the dist center exists.  Use
negative cost for that.

include/prototypes.h
src/lib/update/distribute.c
src/lib/update/finish.c

index 8513b5e3e9846aa5b58a4290be43425c9cea7d7f..3c0748b558f0bb8a2e917e65547bd8fa461ac10b 100644 (file)
@@ -694,7 +694,7 @@ extern void delete_old_announcements(void);
 /* deliver.c */
 extern void dodeliver(struct sctstr *);
 /* distribute.c */
-extern int dodistribute(struct sctstr *, int, char *, double, double);
+extern int dodistribute(struct sctstr *, int, double, double);
 /* finish.c */
 extern void finish_sects(int);
 /* human.c */
index 41418599076eae7f71ea730005dc12489c84e752..7f86179e71d319bce58e146e7c7563b1dbcccba9 100644 (file)
@@ -51,9 +51,8 @@
 #define IMPORT_BONUS 10.0
 
 int
-dodistribute(struct sctstr *sp, int imex, char *path, double dist_i_cost,
-            double dist_e_cost)
-         /* import or export? */
+dodistribute(struct sctstr *sp, int imex,
+            double dist_i_cost, double dist_e_cost)
 {
     struct ichrstr *ip;
     struct sctstr *dist;
@@ -73,7 +72,7 @@ dodistribute(struct sctstr *sp, int imex, char *path, double dist_i_cost,
     if ((sp->sct_dist_x == sp->sct_x) && (sp->sct_dist_y == sp->sct_y))
        return 0;
 
-    if (!path) {
+    if (dist_e_cost < 0.0) {
        if (sp->sct_own != 0) {
            if (imex == EXPORT) /* only want this once */
                wu(0, sp->sct_own, "No path to dist sector for %s\n",
index 7b458bb113c7bb4eb18da1b8f7f36354cb99ff72..43e035557f40008ec7eddf9bd2ec6d28675e5474 100644 (file)
@@ -43,7 +43,6 @@
 
 /* Used for building up distribution info */
 struct distinfo {
-    char *path;                        /* path to take */
     double imcost;             /* import cost */
     double excost;             /* export cost */
 };
@@ -53,8 +52,6 @@ struct distinfo {
  * of course :) ) We do clear it each and every time. */
 static struct distinfo *g_distptrs;
 
-static char *finish_path = "h";        /* Placeholder indicating path exists */
-
 static void assemble_dist_paths(struct distinfo *distptrs);
 static char *ReversePath(char *path);
 
@@ -125,8 +122,7 @@ finish_sects(int etu)
            continue;
        /* Get the pointer */
        infptr = &g_distptrs[sp->sct_uid];
-       dodistribute(sp, EXPORT,
-                    infptr->path, infptr->imcost, infptr->excost);
+       dodistribute(sp, EXPORT, infptr->imcost, infptr->excost);
     }
     logerror("done exporting\n");
 
@@ -139,8 +135,7 @@ finish_sects(int etu)
        np = getnatp(sp->sct_own);
        if (np->nat_money < 0)
            continue;
-       dodistribute(sp, IMPORT,
-                    infptr->path, infptr->imcost, infptr->excost);
+       dodistribute(sp, IMPORT, infptr->imcost, infptr->excost);
        sp->sct_off = 0;
     }
     logerror("done importing\n");
@@ -177,7 +172,9 @@ assemble_dist_paths(struct distinfo *distptrs)
        path = BestDistPath(buf, dist, sp, &d);
 
        /* Now, we have a path */
-       if (path != NULL) {
+       if (!path)
+           infptr->imcost = infptr->excost = -1.0;
+       else {
            /* Save the import cost */
            infptr->imcost = d;
            /* Now, reverse the path */
@@ -185,7 +182,6 @@ assemble_dist_paths(struct distinfo *distptrs)
            /* And walk the path back to the dist center to get the export
               cost */
            infptr->excost = pathcost(sp, p, MOB_MOVE);
-           infptr->path = finish_path;
        }
     }
 }