You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/12/16 11:07:57 UTC
svn commit: r1645894 -
/subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c
Author: stefan2
Date: Tue Dec 16 10:07:57 2014
New Revision: 1645894
URL: http://svn.apache.org/r1645894
Log:
On the fsx-id branch: Simplify node_revision_t duplication code before
we add more members to it.
* subversion/libsvn_fs_x/dag.c
(copy_node_revision): Use duplicating allocation to create the copy.
Also, make it a deep copy of *all* elements.
(svn_fs_x__dag_dup,
svn_fs_x__dag_copy): Simplify caller.
Modified:
subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c?rev=1645894&r1=1645893&r2=1645894&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c Tue Dec 16 10:07:57 2014
@@ -148,23 +148,21 @@ static node_revision_t *
copy_node_revision(node_revision_t *noderev,
apr_pool_t *pool)
{
- node_revision_t *nr = apr_pcalloc(pool, sizeof(*nr));
- nr->kind = noderev->kind;
+ node_revision_t *nr = apr_pmemdup(pool, noderev, sizeof(*noderev));
+ nr->id = svn_fs_x__id_copy(noderev->id, pool);
+
if (noderev->predecessor_id)
nr->predecessor_id = svn_fs_x__id_copy(noderev->predecessor_id, pool);
- nr->predecessor_count = noderev->predecessor_count;
if (noderev->copyfrom_path)
nr->copyfrom_path = apr_pstrdup(pool, noderev->copyfrom_path);
- nr->copyfrom_rev = noderev->copyfrom_rev;
+
nr->copyroot_path = apr_pstrdup(pool, noderev->copyroot_path);
- nr->copyroot_rev = noderev->copyroot_rev;
nr->data_rep = svn_fs_x__rep_copy(noderev->data_rep, pool);
nr->prop_rep = svn_fs_x__rep_copy(noderev->prop_rep, pool);
- nr->mergeinfo_count = noderev->mergeinfo_count;
- nr->has_mergeinfo = noderev->has_mergeinfo;
if (noderev->created_path)
nr->created_path = apr_pstrdup(pool, noderev->created_path);
+
return nr;
}
@@ -1139,13 +1137,8 @@ svn_fs_x__dag_dup(const dag_node_t *node
/* Only copy cached node_revision_t for immutable nodes. */
if (node->node_revision && !svn_fs_x__dag_check_mutable(node))
- {
- new_node->node_revision = copy_node_revision(node->node_revision, pool);
- new_node->node_revision->id =
- svn_fs_x__id_copy(node->node_revision->id, pool);
- new_node->node_revision->is_fresh_txn_root =
- node->node_revision->is_fresh_txn_root;
- }
+ new_node->node_revision = copy_node_revision(node->node_revision, pool);
+
new_node->node_pool = pool;
return new_node;
@@ -1272,7 +1265,8 @@ svn_fs_x__dag_copy(dag_node_t *to_node,
/* Create a successor with its predecessor pointing at the copy
source. */
- to_noderev->predecessor_id = svn_fs_x__id_copy(from_noderev->id, pool);
+ to_noderev->predecessor_id = to_noderev->id;
+ to_noderev->id = NULL;
if (to_noderev->predecessor_count != -1)
to_noderev->predecessor_count++;
to_noderev->created_path =