summaryrefslogtreecommitdiff
path: root/metadata/metabuilder.c
diff options
context:
space:
mode:
Diffstat (limited to 'metadata/metabuilder.c')
-rw-r--r--metadata/metabuilder.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/metadata/metabuilder.c b/metadata/metabuilder.c
index af9e99da..7c419b83 100644
--- a/metadata/metabuilder.c
+++ b/metadata/metabuilder.c
@@ -298,7 +298,7 @@ meta_builder_copy (MetaBuilder *builder,
const char *dest_path,
guint64 mtime)
{
- MetaFile *src, *dest;
+ MetaFile *src, *dest, *temp;
meta_builder_remove (builder, dest_path, mtime);
@@ -306,9 +306,15 @@ meta_builder_copy (MetaBuilder *builder,
if (src == NULL)
return;
+ temp = metafile_new (NULL, NULL);
+ meta_file_copy_into (src, temp, mtime);
+
dest = meta_builder_lookup (builder, dest_path, TRUE);
+ dest->data = temp->data;
+ dest->children = temp->children;
+ dest->last_changed = temp->last_changed;
- meta_file_copy_into (src, dest, mtime);
+ g_free (temp);
}
void