- offset = wim->hdr.lookup_table_res_entry.offset;
- buf_entries_remaining = 0;
- for (; num_entries != 0;
- num_entries--, buf_entries_remaining--, disk_entry++)
- {
- if (buf_entries_remaining == 0) {
- size_t entries_to_read, bytes_to_read;
-
- entries_to_read = min(ARRAY_LEN(table_buf), num_entries);
- bytes_to_read = entries_to_read * sizeof(struct wim_lookup_table_entry_disk);
- if (full_pread(wim->in_fd, table_buf,
- bytes_to_read, offset) != bytes_to_read)
- {
- ERROR_WITH_ERRNO("Error reading lookup table "
- "(offset=%"PRIu64")", offset);
- ret = WIMLIB_ERR_READ;
- goto out_free_lookup_table;
- }
- offset += bytes_to_read;
- disk_entry = table_buf;
- buf_entries_remaining = entries_to_read;
- }