FREE(windows_info->product_name);
FREE(windows_info->edition_id);
FREE(windows_info->installation_type);
+ FREE(windows_info->hal);
FREE(windows_info->product_type);
+ FREE(windows_info->product_suite);
for (i = 0; i < windows_info->num_languages; i++)
FREE(windows_info->languages[i]);
FREE(windows_info->languages);
+ FREE(windows_info->default_language);
FREE(windows_info->system_root);
}
*
* @dest_image_name and @dest_image_description are ignored if they are NULL;
* otherwise, they are used to override the image name and/or image description
- * from the XML data in the source WIM file. */
+ * from the XML data in the source WIM file.
+ *
+ * On failure, WIMLIB_ERR_NOMEM is returned and no changes are made. Otherwise,
+ * 0 is returned and the WIM information at *new_wim_info_p is modified.
+ */
int xml_export_image(const struct wim_info *old_wim_info,
int image,
struct wim_info **new_wim_info_p,
/* Update directory count and file count.
*
* Each dentry counts as either a file or a directory, but not both.
- * The root directory is an exception: it is not counted.
+ * The root directory is an exception: it is not counted at all.
*
* Symbolic links and junction points (and presumably other reparse
* points) count as regular files. This is despite the fact that
out_destroy_image_info:
destroy_image_info(image_info);
+ wim_info->num_images--;
out_free_wim_info:
- if (w->wim_info)
- wim_info->num_images--;
- else
+ if (wim_info != w->wim_info)
FREE(wim_info);
ERROR("Out of memory");
return WIMLIB_ERR_NOMEM;