]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.c
ads entries
[wimlib] / src / lookup_table.c
index 61cc5a83ab663132dc87b3d581c9b64fefa2862a..e0fca5d47ea1cb596b5ffc65c30d86cb1f8548da 100644 (file)
@@ -76,10 +76,6 @@ struct lookup_table_entry *new_lookup_table_entry()
 void free_lookup_table_entry(struct lookup_table_entry *lte)
 {
        if (lte) {
-#ifdef WITH_FUSE
-               if (lte->staging_list.next)
-                       list_del(&lte->staging_list);
-#endif
                switch (lte->resource_location) {
                case RESOURCE_IN_STAGING_FILE:
                case RESOURCE_IN_ATTACHED_BUFFER:
@@ -148,8 +144,11 @@ void lookup_table_insert(struct lookup_table *table,
 static void finalize_lte(struct lookup_table_entry *lte)
 {
        #ifdef WITH_FUSE
-       if (lte->resource_location == RESOURCE_IN_STAGING_FILE)
+       if (lte->resource_location == RESOURCE_IN_STAGING_FILE) {
                unlink(lte->staging_file_name);
+               wimlib_assert(lte->staging_list.next);
+               list_del(&lte->staging_list);
+       }
        #endif
        free_lookup_table_entry(lte);
 }
@@ -458,6 +457,7 @@ __lookup_resource(const struct lookup_table *table, const u8 hash[])
        return NULL;
 }
 
+#ifdef WITH_FUSE
 /* 
  * Finds the dentry, lookup table entry, and stream index for a WIM file stream,
  * given a path name.
@@ -524,6 +524,7 @@ out:
                *stream_idx_ret = stream_idx;
        return 0;
 }
+#endif
 
 static void inode_resolve_ltes(struct inode *inode, struct lookup_table *table)
 {
@@ -536,8 +537,7 @@ static void inode_resolve_ltes(struct inode *inode, struct lookup_table *table)
 
        /* Resolve the alternate data streams */
        for (u16 i = 0; i < inode->num_ads; i++) {
-               struct ads_entry *cur_entry = inode->ads_entries[i];
-
+               struct ads_entry *cur_entry = &inode->ads_entries[i];
                lte = __lookup_resource(table, cur_entry->hash);
                cur_entry->lte = lte;
        }