X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fwim.c;h=af4580285e54593e719397eae1f4a29afd1bdcf8;hp=b52a28d99c265cbf79b0ff1de3642dd9216eadc0;hb=7533ac106a7e642b0a49d7733be4eeaf9763bd03;hpb=7bde3fc590afbdef8f71cd7f8ccbd24172bffc63 diff --git a/src/wim.c b/src/wim.c index b52a28d9..af458028 100644 --- a/src/wim.c +++ b/src/wim.c @@ -204,6 +204,7 @@ WIMLIBAPI int wimlib_get_num_images(const WIMStruct *w) int select_wim_image(WIMStruct *w, int image) { struct wim_image_metadata *imd; + int ret; DEBUG("Selecting image %d", image); @@ -233,20 +234,21 @@ int select_wim_image(WIMStruct *w, int image) INIT_HLIST_HEAD(&imd->inode_list); } } - w->current_image = image; - imd = wim_get_current_image_metadata(w); - + imd = &w->image_metadata[image - 1]; if (imd->root_dentry) { - return 0; + ret = 0; } else { #ifdef ENABLE_DEBUG DEBUG("Reading metadata resource specified by the following " "lookup table entry:"); - print_lookup_table_entry(imd->metadata_lte); + print_lookup_table_entry(imd->metadata_lte, stdout); #endif - return read_metadata_resource(w, imd); + ret = read_metadata_resource(w, imd); + if (ret) + w->current_image = WIMLIB_NO_IMAGE; } + return ret; }