]> wimlib.net Git - wimlib/blobdiff - src/export_image.c
Don't immediately discard streams with 0 references
[wimlib] / src / export_image.c
index bfeef97ad6b41afc83970afd6315f072e991c4d3..8d449ea93439d634b002aacea0287c1f66c3a88b 100644 (file)
@@ -87,10 +87,12 @@ lte_unexport(struct wim_lookup_table_entry *lte, void *_lookup_table)
 {
        struct wim_lookup_table *lookup_table = _lookup_table;
 
-       lte->refcnt -= lte->out_refcnt;
-       if (lte->refcnt == 0) {
-               lookup_table_unlink(lookup_table, lte);
-               free_lookup_table_entry(lte);
+       if (lte->out_refcnt) {
+               lte->refcnt -= lte->out_refcnt;
+               if (lte->refcnt == 0) {
+                       lookup_table_unlink(lookup_table, lte);
+                       free_lookup_table_entry(lte);
+               }
        }
        return 0;
 }