Sfoglia il codice sorgente

oops, sometimes made 0-size index entries

David Rose 24 anni fa
parent
commit
08584e3487
1 ha cambiato i file con 20 aggiunte e 1 eliminazioni
  1. 20 1
      pandaapp/src/indexify/indexImage.cxx

+ 20 - 1
pandaapp/src/indexify/indexImage.cxx

@@ -106,7 +106,7 @@ generate_images(const Filename &archive_dir, PNMTextMaker *text_maker) {
   // the index image.
   bool generate_index_image = true;
   if (!dummy_mode && !force_regenerate && output_filename.exists()) {
-    // Maybe we don't need to renegerated the index.
+    // Maybe we don't need to renegerate the index.
     generate_index_image = false;
 
     const Filename &newest_contributing_filename = 
@@ -130,6 +130,25 @@ generate_images(const Filename &archive_dir, PNMTextMaker *text_maker) {
     }
   }
 
+  // If we don't need to regenerate the index, we do need to at least
+  // scan the header.
+  if (!generate_index_image) {
+    if (index_image.read_header(output_filename)) {
+      if (index_image.get_x_size() != actual_index_width ||
+          index_image.get_y_size() != actual_index_height) {
+        // If the index exists but is the wrong size, we'd better
+        // regenerate it.
+        generate_index_image = true;
+      }
+
+    } else {
+      // If we couldn't even read the header, we'd better regenerate it
+      // after all.
+      nout << "Couldn't read " << output_filename << "; regenerating.\n";
+      generate_index_image = true;
+    }
+  }
+
   if (generate_index_image) {
     index_image.clear(actual_index_width, actual_index_height);
     index_image.fill(1.0, 1.0, 1.0);