get_ref_dir(): take the containing directory as argument
[gitweb.git] / pack-revindex.c
index cd300bdff5b524a4d509ba5276e9ef21f443013d..77a0465be6f6a79814aa3c009612736770b342a1 100644 (file)
@@ -140,5 +140,17 @@ struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs)
                else
                        lo = mi + 1;
        } while (lo < hi);
-       die("internal error: pack revindex corrupt");
+       error("bad offset for revindex");
+       return NULL;
+}
+
+void discard_revindex(void)
+{
+       if (pack_revindex_hashsz) {
+               int i;
+               for (i = 0; i < pack_revindex_hashsz; i++)
+                       free(pack_revindex[i].revindex);
+               free(pack_revindex);
+               pack_revindex_hashsz = 0;
+       }
 }