chiark / gitweb /
routesearch: parse output in query_routesearch
[ypp-sc-tools.db-test.git] / yarrg / rsvalue.c
index 30e5612..8fe5f22 100644 (file)
@@ -136,15 +136,18 @@ static IslandPair *ipair_get_create(int si, int di) {
   assert(di < islandtablesz);
 
   if (!(ipa= ipairs[si])) {
-    ipa= ipairs[si]= mcalloc(sizeof(*ipa) * islandtablesz);
+    ipairs[si]= MCALLOC(ipa, islandtablesz);
   }
   if ((ip= ipa[di]))
     return ip;
 
-  ipa[di]= ip= mmalloc(sizeof(*ip));
+  ipa[di]= NEW(ip);
   ip->trades= 0;
   ip->route_tail_value= -1;
 
+  if (si==di) ctr_islands_arbitrage++;
+  else ctr_ipairs_relevant++;
+
   debugf("VALUE ipair_get(i%d,i%d) running...\n", si,di);
   SQL_MUST( sqlite3_bind_int(ss_ipair_dist, 1, si) );
   SQL_MUST( sqlite3_bind_int(ss_ipair_dist, 2, di) );
@@ -337,7 +340,7 @@ static void read_trades(void) {
     IslandPair *ip= ipair_get_create(cols[1], cols[3]);
     TradesBlock *block= ip->trades;
     if (!block || ip->trades->ntrades >= TRADES_PER_BLOCK) {
-      block= mmalloc(sizeof(*block));
+      NEW(block);
       block->next= ip->trades;
       ip->trades= block;
       block->ntrades= 0;
@@ -379,7 +382,7 @@ static void read_islandtradeends(const char *bs, int srcdstoff) {
        goto found;
     /* not found, add new end */
 
-    search= mmalloc(sizeof(*search));
+    NEW(search);
     search->commodid= commodid;
     search->price= price;
     search->next= *trades;
@@ -395,12 +398,11 @@ static void read_islandtradeends(const char *bs, int srcdstoff) {
 
 void setup_value(void) {
   sqlite3_stmt *sst;
-  int i;
 
   commodstabsz= sql_single_int("SELECT max(commodid) FROM commods") + 1;
-  commodstab= mmalloc(sizeof(*commodstab)*commodstabsz);
-  for (i=0; i<commodstabsz; i++)
-    commodstab[i].mass= commodstab[i].volu= -1;
+  MCALLOC_INITEACH(commodstab, commodstabsz,
+                  this->mass= this->volu= -1
+                  );
 
   SQL_PREPARE(sst,
              "SELECT commodid,unitmass,unitvolume FROM commods");
@@ -413,8 +415,8 @@ void setup_value(void) {
   }
   sqlite3_finalize(sst);
 
-  ipairs= mcalloc(sizeof(*ipairs) * islandtablesz);
-  itradeends= mcalloc(sizeof(*itradeends) * islandtablesz);
+  MCALLOC(ipairs, islandtablesz);
+  MCALLOC(itradeends, islandtablesz);
 
   SQL_PREPARE(ss_ipair_dist,
              " SELECT dist FROM dists\n"