]> wimlib.net Git - wimlib/blobdiff - src/export_image.c
Minor cleanups
[wimlib] / src / export_image.c
index 9b9304ceed04369426a13a3624729cc72cfc5d12..6d38855db04e9d8c4b9d403e56e9cf05b6b89bbf 100644 (file)
@@ -247,7 +247,8 @@ WIMLIBAPI int wimlib_export_image(WIMStruct *src_wim,
                goto out_free_ltes;
 
        ret = xml_export_image(src_wim->wim_info, src_image,
-                              &dest_wim->wim_info, dest_name, dest_description);
+                              &dest_wim->wim_info, dest_name,
+                              dest_description);
        if (ret != 0)
                goto out_free_ltes;
 
@@ -267,10 +268,8 @@ WIMLIBAPI int wimlib_export_image(WIMStruct *src_wim,
        for_dentry_in_tree(root, add_lte_to_dest_wim, &wims);
        wimlib_assert(list_empty(&wims.lte_list_head));
 
-       if (export_flags & WIMLIB_EXPORT_FLAG_BOOT) {
-               DEBUG("Setting boot_idx to %d", dest_wim->hdr.image_count);
+       if (export_flags & WIMLIB_EXPORT_FLAG_BOOT)
                wimlib_set_boot_idx(dest_wim, dest_wim->hdr.image_count);
-       }
        ret = 0;
        goto out;
 
@@ -290,57 +289,3 @@ out:
        }
        return ret;
 }
-
-static int image_run_full_verifications(WIMStruct *w)
-{
-       return for_dentry_in_tree(wim_root_dentry(w), verify_dentry, w);
-}
-
-static int lte_fix_refcnt(struct lookup_table_entry *lte, void *ctr)
-{
-       if (lte->refcnt != lte->real_refcnt) {
-               WARNING("The following lookup table entry has a reference "
-                       "count of %u, but", lte->refcnt);
-               WARNING("We found %u references to it",
-                       lte->real_refcnt);
-               print_lookup_table_entry(lte);
-               lte->refcnt = lte->real_refcnt;
-               ++*(unsigned long *)ctr;
-       }
-       return 0;
-}
-
-/* Ideally this would be unnecessary... however, the WIMs for Windows 8 are
- * screwed up because some lookup table entries are referenced more times than
- * their stated reference counts.  So theoretically, if we delete all the
- * references to a stream and then remove it, it might still be referenced
- * somewhere else, making a file be missing from the WIM... So, work around this
- * problem by looking at ALL the images to re-calculate the reference count of
- * EVERY lookup table entry.  This only absolutely has to be done before an image
- * is deleted or before an image is mounted read-write. */
-int wim_run_full_verifications(WIMStruct *w)
-{
-       int ret;
-
-       for_lookup_table_entry(w->lookup_table, lte_zero_real_refcnt, NULL);
-       w->all_images_verified = true;
-       w->full_verification_in_progress = true;
-       ret = for_image(w, WIMLIB_ALL_IMAGES, image_run_full_verifications);
-       w->full_verification_in_progress = false;
-       if (ret == 0) {
-               unsigned long num_ltes_with_bogus_refcnt = 0;
-               for (int i = 0; i < w->hdr.image_count; i++)
-                       w->image_metadata[i].metadata_lte->real_refcnt++;
-               for_lookup_table_entry(w->lookup_table, lte_fix_refcnt,
-                                      &num_ltes_with_bogus_refcnt);
-               if (num_ltes_with_bogus_refcnt != 0) {
-                       WARNING("A total of %lu entries in the WIM's stream "
-                               "lookup table had to have\n"
-                               "          their reference counts fixed.",
-                               num_ltes_with_bogus_refcnt);
-               }
-       } else {
-               w->all_images_verified = false;
-       }
-       return ret;
-}