]> wimlib.net Git - wimlib/blobdiff - src/update_image.c
Replace unnamed union initializers
[wimlib] / src / update_image.c
index 3e7613fcfa5dbc12e37a7bdd3985a1cc24b764cb..5dc32fc4c1e1280a7dd4e133c2998dab57a5b865 100644 (file)
@@ -328,15 +328,13 @@ static int
 journaled_link(struct update_command_journal *j,
               struct wim_dentry *subject, struct wim_dentry *parent)
 {
-       struct update_primitive prim = {
-               .type = LINK_DENTRY,
-               .link = {
-                       .subject = subject,
-                       .parent = parent,
-               },
-       };
+       struct update_primitive prim;
        int ret;
 
+       prim.type = LINK_DENTRY;
+       prim.link.subject = subject;
+       prim.link.parent = parent;
+
        ret = record_update_primitive(j, prim);
        if (ret)
                return ret;
@@ -356,21 +354,18 @@ journaled_link(struct update_command_journal *j,
 static int
 journaled_unlink(struct update_command_journal *j, struct wim_dentry *subject)
 {
-       int ret;
        struct wim_dentry *parent;
+       struct update_primitive prim;
+       int ret;
 
        if (dentry_is_root(subject))
                parent = NULL;
        else
                parent = subject->parent;
 
-       struct update_primitive prim = {
-               .type = UNLINK_DENTRY,
-               .link = {
-                       .subject = subject,
-                       .parent = parent,
-               },
-       };
+       prim.type = UNLINK_DENTRY;
+       prim.link.subject = subject;
+       prim.link.parent = parent;
 
        ret = record_update_primitive(j, prim);
        if (ret)
@@ -1022,28 +1017,23 @@ rename_wim_path(WIMStruct *wim, const tchar *from, const tchar *to,
                return -EBUSY;
 
        if (j) {
+               if (dst)
+                       if (journaled_unlink(j, dst))
+                               return -ENOMEM;
+               if (journaled_unlink(j, src))
+                       return -ENOMEM;
                if (journaled_change_name(j, src, path_basename(to)))
                        return -ENOMEM;
+               if (journaled_link(j, src, parent_of_dst))
+                       return -ENOMEM;
        } else {
                ret = dentry_set_name(src, path_basename(to));
                if (ret)
                        return -ENOMEM;
-       }
-       if (dst) {
-               if (j) {
-                       if (journaled_unlink(j, dst))
-                               return -ENOMEM;
-               } else {
+               if (dst) {
                        unlink_dentry(dst);
                        free_dentry_tree(dst, wim->lookup_table);
                }
-       }
-       if (j) {
-               if (journaled_unlink(j, src))
-                       return -ENOMEM;
-               if (journaled_link(j, src, parent_of_dst))
-                       return -ENOMEM;
-       } else {
                unlink_dentry(src);
                dentry_add_child(parent_of_dst, src);
        }