]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.c
Merge branch 'new_extract'
[wimlib] / src / lookup_table.c
index 9c198d5b4da3f13f9baf5ef7dcf576f4ab374bb3..1950ab21a89bbbefb75fc56473ce64936d12753c 100644 (file)
@@ -127,7 +127,6 @@ clone_lookup_table_entry(const struct wim_lookup_table_entry *old)
        if (new == NULL)
                return NULL;
 
-       new->extracted_file = NULL;
        switch (new->resource_location) {
        case RESOURCE_IN_WIM:
                list_add(&new->rspec_node, &new->rspec->stream_list);
@@ -135,6 +134,7 @@ clone_lookup_table_entry(const struct wim_lookup_table_entry *old)
 
        case RESOURCE_IN_FILE_ON_DISK:
 #ifdef __WIN32__
+       case RESOURCE_IN_WINNT_FILE_ON_DISK:
        case RESOURCE_WIN32_ENCRYPTED:
 #endif
 #ifdef WITH_FUSE
@@ -194,6 +194,7 @@ lte_put_resource(struct wim_lookup_table_entry *lte)
                break;
        case RESOURCE_IN_FILE_ON_DISK:
 #ifdef __WIN32__
+       case RESOURCE_IN_WINNT_FILE_ON_DISK:
        case RESOURCE_WIN32_ENCRYPTED:
 #endif
 #ifdef WITH_FUSE
@@ -444,6 +445,7 @@ cmp_streams_by_sequential_order(const void *p1, const void *p2)
        case RESOURCE_IN_STAGING_FILE:
 #endif
 #ifdef __WIN32__
+       case RESOURCE_IN_WINNT_FILE_ON_DISK:
        case RESOURCE_WIN32_ENCRYPTED:
 #endif
                /* Compare files by path: just a heuristic that will place files
@@ -1269,16 +1271,6 @@ lte_zero_out_refcnt(struct wim_lookup_table_entry *lte, void *_ignore)
        return 0;
 }
 
-int
-lte_free_extracted_file(struct wim_lookup_table_entry *lte, void *_ignore)
-{
-       if (lte->extracted_file != NULL) {
-               FREE(lte->extracted_file);
-               lte->extracted_file = NULL;
-       }
-       return 0;
-}
-
 /* Allocate a stream entry for the contents of the buffer, or re-use an existing
  * entry in @lookup_table for the same stream.  */
 struct wim_lookup_table_entry *
@@ -1428,7 +1420,7 @@ wimlib_iterate_lookup_table(WIMStruct *wim, int flags,
                .cb = cb,
                .user_ctx = user_ctx,
        };
-       if (wim->hdr.part_number == 1) {
+       if (wim_has_metadata(wim)) {
                int ret;
                for (int i = 0; i < wim->hdr.image_count; i++) {
                        ret = do_iterate_lte(wim->image_metadata[i]->metadata_lte,