* along with wimlib; if not, see http://www.gnu.org/licenses/.
*/
-#include "wimlib_internal.h"
-#include "dentry.h"
-#include "lookup_table.h"
-#include "xml.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "wimlib.h"
+#include "wimlib/dentry.h"
+#include "wimlib/error.h"
+#include "wimlib/lookup_table.h"
+#include "wimlib/metadata.h"
+#include "wimlib/swm.h"
+#include "wimlib/xml.h"
static int
inode_allocate_needed_ltes(struct wim_inode *inode,
wimlib_progress_func_t progress_func)
{
int ret;
- struct wim_lookup_table *joined_tab, *src_wim_tab_save;
struct wim_image_metadata *src_imd;
struct list_head lte_list_head;
struct wim_inode *inode;
if (ret)
return ret;
- if (num_additional_swms) {
- ret = new_joined_lookup_table(src_wim, additional_swms,
- num_additional_swms,
- &joined_tab);
- if (ret)
- return ret;
- src_wim_tab_save = src_wim->lookup_table;
- src_wim->lookup_table = joined_tab;
- }
+ if (num_additional_swms)
+ merge_lookup_tables(src_wim, additional_swms, num_additional_swms);
ret = select_wim_image(src_wim, src_image);
if (ret) {
free_lookup_table_entry(lte);
}
out:
- if (num_additional_swms) {
- free_lookup_table(src_wim->lookup_table);
- src_wim->lookup_table = src_wim_tab_save;
- }
+ if (num_additional_swms)
+ unmerge_lookup_table(src_wim);
return ret;
}