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);
}
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));
}
/*
i = image;
end = image;
}
- do {
+ for (; i <= end; i++) {
ret = wimlib_select_image(w, i);
if (ret != 0)
return ret;
ret = visitor(w);
if (ret != 0)
return ret;
- } while (i++ != end);
+ }
return 0;
}
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);
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.
*/
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));
}
}
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;
}
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);