- DEBUG("Writing lookup table for SWM (offset %"PRIu64")",
- lookup_table_offset);
-
- while (lte_chain_head != NULL) {
- ret = write_lookup_table_entry(lte_chain_head, w->out_fp);
- if (ret != 0)
- return ret;
- struct lookup_table_entry *prev = lte_chain_head;
- lte_chain_head = lte_chain_head->next_lte_in_swm;
- prev->next_lte_in_swm = NULL;
- }
- off_t xml_data_offset = ftello(w->out_fp);
-
- if (lookup_table_offset == -1 || xml_data_offset == -1)
- return WIMLIB_ERR_WRITE;
- w->hdr.lookup_table_res_entry.offset = lookup_table_offset;
- w->hdr.lookup_table_res_entry.size =
- xml_data_offset - lookup_table_offset;
- ret = finish_write(w, WIM_ALL_IMAGES,
- write_flags | WIMLIB_WRITE_FLAG_NO_LOOKUP_TABLE);
- if (ret != 0)
+ ret = write_lookup_table_from_stream_list(lte_list, w->out_fd,
+ &w->hdr.lookup_table_res_entry);
+ if (ret)