- make code easier to understand
authorMichael Schroeder <mls@suse.de>
Fri, 30 May 2008 12:37:49 +0000 (12:37 +0000)
committerMichael Schroeder <mls@suse.de>
Fri, 30 May 2008 12:37:49 +0000 (12:37 +0000)
tools/repo_write.c

index 06bd6ca..76c04ae 100644 (file)
@@ -558,16 +558,19 @@ addschema(struct cbdata *cbdata, Id *schema)
          return cid;
     }
   /* a new one. make room. */
-  cbdata->myschemadata = sat_extend(cbdata->myschemadata, cbdata->myschemadatalen, len, sizeof(Id), SCHEMATADATA_BLOCK);
-  cbdata->myschemata = sat_extend(cbdata->myschemata, cbdata->nmyschemata, 1, sizeof(Id), SCHEMATA_BLOCK);
   if (!cbdata->nmyschemata)
     {
+      /* allocate schema 0, it is always empty */
+      cbdata->myschemadata = sat_extend(cbdata->myschemadata, cbdata->myschemadatalen, 1, sizeof(Id), SCHEMATADATA_BLOCK);
+      cbdata->myschemata = sat_extend(cbdata->myschemata, cbdata->nmyschemata, 1, sizeof(Id), SCHEMATA_BLOCK);
       cbdata->myschemata[0] = 0;
       cbdata->myschemadata[0] = 0;
       cbdata->nmyschemata = 1;
       cbdata->myschemadatalen = 1;
     }
   /* add schema */
+  cbdata->myschemadata = sat_extend(cbdata->myschemadata, cbdata->myschemadatalen, len, sizeof(Id), SCHEMATADATA_BLOCK);
+  cbdata->myschemata = sat_extend(cbdata->myschemata, cbdata->nmyschemata, 1, sizeof(Id), SCHEMATA_BLOCK);
   memcpy(cbdata->myschemadata + cbdata->myschemadatalen, schema, len * sizeof(Id));
   cbdata->myschemata[cbdata->nmyschemata] = cbdata->myschemadatalen;
   cbdata->myschemadatalen += len;