From: Eric Biggers Date: Wed, 27 Mar 2013 05:39:22 +0000 (-0500) Subject: overwrite_wim_inplace(): Only write new metadata resources for modified images X-Git-Tag: v1.3.2 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=4a3cea03c478c289d3b779fe8f8b2f3bb8fbd275 overwrite_wim_inplace(): Only write new metadata resources for modified images --- diff --git a/src/lookup_table.c b/src/lookup_table.c index 6370f038..b22def29 100644 --- a/src/lookup_table.c +++ b/src/lookup_table.c @@ -498,6 +498,7 @@ write_lookup_table(WIMStruct *w, int image, struct resource_entry *out_res_entry if (start_offset == -1) return WIMLIB_ERR_WRITE; + /* Write lookup table entries for metadata resources */ if (image == WIMLIB_ALL_IMAGES) { start_image = 1; end_image = w->hdr.image_count; @@ -516,10 +517,12 @@ write_lookup_table(WIMStruct *w, int image, struct resource_entry *out_res_entry return ret; } + /* Write lookup table entries for other resources */ ret = for_lookup_table_entry(w->lookup_table, write_lookup_table_entry, out); if (ret) return ret; + /* Fill in the resource entry for the lookup table itself */ end_offset = ftello(out); if (end_offset == -1) return WIMLIB_ERR_WRITE; diff --git a/src/write.c b/src/write.c index a3539ddb..d985aafe 100644 --- a/src/write.c +++ b/src/write.c @@ -1961,9 +1961,7 @@ overwrite_wim_inplace(WIMStruct *w, int write_flags, found_modified_image = false; for (int i = 0; i < w->hdr.image_count; i++) { - if (!found_modified_image) - found_modified_image = w->image_metadata[i].modified; - if (found_modified_image) { + if (w->image_metadata[i].modified) { select_wim_image(w, i + 1); ret = write_metadata_resource(w); if (ret != 0)