X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fwim.c;h=5507b21242a703436992bf463268becc545f622a;hp=73288788a3466b92f8b19e0eb3786c29c7d508a4;hb=3489da595e09caf8d6867661c45b4dab188f6ece;hpb=5577584b8a50baa958f832ddb9418986e3e38847 diff --git a/src/wim.c b/src/wim.c index 73288788..5507b212 100644 --- a/src/wim.c +++ b/src/wim.c @@ -32,9 +32,7 @@ static int print_metadata(WIMStruct *w) { -#ifdef ENABLE_SECURITY_DATA print_security_data(wim_security_data(w)); -#endif return for_dentry_in_tree(wim_root_dentry(w), print_dentry, w->lookup_table); } @@ -48,14 +46,7 @@ static int print_files(WIMStruct *w) WIMStruct *new_wim_struct() { - WIMStruct *w; - - w = CALLOC(1, sizeof(WIMStruct)); - if (!w) - return NULL; - w->link_type = WIM_LINK_TYPE_NONE; - w->current_image = WIM_NO_IMAGE; - return w; + return CALLOC(1, sizeof(WIMStruct)); } /* @@ -116,6 +107,7 @@ static int append_metadata_resource_entry(struct lookup_table_entry *lte, WIMStruct *w = wim_p; if (lte->resource_entry.flags & WIM_RESHDR_FLAG_METADATA) { + /*fprintf(stderr, "found mlte at %u\n", lte->resource_entry.offset);*/ if (w->current_image == w->hdr.image_count) { ERROR("Expected only %u images, but found more", w->hdr.image_count); @@ -154,11 +146,6 @@ int wim_resource_compression_type(const WIMStruct *w, return resource_compression_type(wim_ctype, entry->flags); } -WIMLIBAPI void wimlib_set_verbose(WIMStruct *w, bool verbose) -{ - w->verbose = verbose; -} - /* * Creates a WIMStruct for a new WIM file. */ @@ -220,12 +207,8 @@ int wimlib_select_image(WIMStruct *w, int image) imd = wim_get_current_image_metadata(w); if (!imd->modified) { DEBUG("Freeing image %u", w->current_image); - free_dentry_tree(imd->root_dentry, NULL, false); - imd->root_dentry = NULL; -#ifdef ENABLE_SECURITY_DATA - free_security_data(imd->security_data); - imd->security_data = NULL; -#endif + destroy_image_metadata(imd, NULL); + memset(imd, 0, sizeof(*imd)); } } @@ -409,7 +392,8 @@ static int begin_read(WIMStruct *w, const char *in_wim_path, int flags) w->fp = fopen(in_wim_path, "rb"); if (!w->fp) { - ERROR_WITH_ERRNO("Failed to open the file `%s' for reading"); + ERROR_WITH_ERRNO("Failed to open the file `%s' for reading", + in_wim_path); return WIMLIB_ERR_OPEN; } @@ -570,13 +554,8 @@ WIMLIBAPI void wimlib_free(WIMStruct *w) FREE(w->xml_data); free_wim_info(w->wim_info); if (w->image_metadata) { - for (i = 0; i < w->hdr.image_count; i++) { - free_dentry_tree(w->image_metadata[i].root_dentry, - NULL, false); - #ifdef ENABLE_SECURITY_DATA - free_security_data(w->image_metadata[i].security_data); - #endif - } + for (i = 0; i < w->hdr.image_count; i++) + destroy_image_metadata(&w->image_metadata[i], NULL); FREE(w->image_metadata); } FREE(w);