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 2015/01/06 17:29:13 UTC
svn commit: r1649866 - in /subversion/trunk/subversion/libsvn_fs_x: dag.c
dag.h
Author: stefan2
Date: Tue Jan 6 16:29:13 2015
New Revision: 1649866
URL: http://svn.apache.org/r1649866
Log:
Continue migrating FSX to the two-pool paradigm. Some single-pool functions
don't allocate temporary data, i.e. their pools can immediately be renamed
to RESULT_POOL. Do this for dag.* .
* subversion/libsvn_fs_x/dag.h
(svn_fs_x__dag_get_node,
svn_fs_x__dag_dup,
svn_fs_x__dag_copy_into_pool,
svn_fs_x__dag_clone_root,
svn_fs_x__dag_file_checksum): POOL is actually a RESULT_POOL.
* subversion/libsvn_fs_x/dag.c
(copy_node_revision,
svn_fs_x__dag_get_node,
svn_fs_x__dag_txn_root,
svn_fs_x__dag_clone_root,
svn_fs_x__dag_file_checksum,
svn_fs_x__dag_dup,
svn_fs_x__dag_copy_into_pool): Same.
Modified:
subversion/trunk/subversion/libsvn_fs_x/dag.c
subversion/trunk/subversion/libsvn_fs_x/dag.h
Modified: subversion/trunk/subversion/libsvn_fs_x/dag.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/dag.c?rev=1649866&r1=1649865&r2=1649866&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_x/dag.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/dag.c Tue Jan 6 16:29:13 2015
@@ -115,23 +115,24 @@ svn_fs_x__dag_set_fs(dag_node_t *node,
}
-/* Dup NODEREV and all associated data into POOL.
+/* Dup NODEREV and all associated data into RESULT_POOL.
Leaves the id and is_fresh_txn_root fields as zero bytes. */
static svn_fs_x__noderev_t *
copy_node_revision(svn_fs_x__noderev_t *noderev,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
- svn_fs_x__noderev_t *nr = apr_pmemdup(pool, noderev, sizeof(*noderev));
+ svn_fs_x__noderev_t *nr = apr_pmemdup(result_pool, noderev,
+ sizeof(*noderev));
if (noderev->copyfrom_path)
- nr->copyfrom_path = apr_pstrdup(pool, noderev->copyfrom_path);
+ nr->copyfrom_path = apr_pstrdup(result_pool, noderev->copyfrom_path);
- nr->copyroot_path = apr_pstrdup(pool, noderev->copyroot_path);
- 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->copyroot_path = apr_pstrdup(result_pool, noderev->copyroot_path);
+ nr->data_rep = svn_fs_x__rep_copy(noderev->data_rep, result_pool);
+ nr->prop_rep = svn_fs_x__rep_copy(noderev->prop_rep, result_pool);
if (noderev->created_path)
- nr->created_path = apr_pstrdup(pool, noderev->created_path);
+ nr->created_path = apr_pstrdup(result_pool, noderev->created_path);
return nr;
}
@@ -238,23 +239,23 @@ svn_error_t *
svn_fs_x__dag_get_node(dag_node_t **node,
svn_fs_t *fs,
const svn_fs_x__id_t *id,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
dag_node_t *new_node;
svn_fs_x__noderev_t *noderev;
/* Construct the node. */
- new_node = apr_pcalloc(pool, sizeof(*new_node));
+ new_node = apr_pcalloc(result_pool, sizeof(*new_node));
new_node->fs = fs;
new_node->id = *id;
/* Grab the contents so we can inspect the node's kind and created path. */
- new_node->node_pool = pool;
+ new_node->node_pool = result_pool;
SVN_ERR(get_node_revision(&noderev, new_node));
/* Initialize the KIND and CREATED_PATH attributes */
new_node->kind = noderev->kind;
- new_node->created_path = apr_pstrdup(pool, noderev->created_path);
+ new_node->created_path = apr_pstrdup(result_pool, noderev->created_path);
if (noderev->is_fresh_txn_root)
new_node->fresh_root_predecessor_id = noderev->predecessor_id;
@@ -686,12 +687,12 @@ svn_error_t *
svn_fs_x__dag_txn_root(dag_node_t **node_p,
svn_fs_t *fs,
svn_fs_x__txn_id_t txn_id,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
svn_fs_x__id_t root_id;
svn_fs_x__init_txn_root(&root_id, txn_id);
- return svn_fs_x__dag_get_node(node_p, fs, &root_id, pool);
+ return svn_fs_x__dag_get_node(node_p, fs, &root_id, result_pool);
}
@@ -798,13 +799,13 @@ svn_error_t *
svn_fs_x__dag_clone_root(dag_node_t **root_p,
svn_fs_t *fs,
svn_fs_x__txn_id_t txn_id,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
svn_fs_x__id_t root_id;
svn_fs_x__init_txn_root(&root_id, txn_id);
/* One way or another, root_id now identifies a cloned root node. */
- return svn_fs_x__dag_get_node(root_p, fs, &root_id, pool);
+ return svn_fs_x__dag_get_node(root_p, fs, &root_id, result_pool);
}
@@ -1031,7 +1032,7 @@ svn_error_t *
svn_fs_x__dag_file_checksum(svn_checksum_t **checksum,
dag_node_t *file,
svn_checksum_kind_t kind,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
svn_fs_x__noderev_t *noderev;
@@ -1042,7 +1043,7 @@ svn_fs_x__dag_file_checksum(svn_checksum
SVN_ERR(get_node_revision(&noderev, file));
- return svn_fs_x__file_checksum(checksum, noderev, kind, pool);
+ return svn_fs_x__file_checksum(checksum, noderev, kind, result_pool);
}
@@ -1102,35 +1103,36 @@ svn_fs_x__dag_finalize_edits(dag_node_t
dag_node_t *
svn_fs_x__dag_dup(const dag_node_t *node,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
/* Allocate our new node. */
- dag_node_t *new_node = apr_pmemdup(pool, node, sizeof(*new_node));
+ dag_node_t *new_node = apr_pmemdup(result_pool, node, sizeof(*new_node));
/* Only copy cached svn_fs_x__noderev_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 = copy_node_revision(node->node_revision,
+ result_pool);
new_node->created_path = new_node->node_revision->created_path;
}
else
{
new_node->node_revision = NULL;
- new_node->created_path = apr_pstrdup(pool, node->created_path);
+ new_node->created_path = apr_pstrdup(result_pool, node->created_path);
}
- new_node->node_pool = pool;
+ new_node->node_pool = result_pool;
return new_node;
}
dag_node_t *
svn_fs_x__dag_copy_into_pool(dag_node_t *node,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
- return (node->node_pool == pool
+ return (node->node_pool == result_pool
? node
- : svn_fs_x__dag_dup(node, pool));
+ : svn_fs_x__dag_dup(node, result_pool));
}
svn_error_t *
Modified: subversion/trunk/subversion/libsvn_fs_x/dag.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/dag.h?rev=1649866&r1=1649865&r2=1649866&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_x/dag.h (original)
+++ subversion/trunk/subversion/libsvn_fs_x/dag.h Tue Jan 6 16:29:13 2015
@@ -65,27 +65,27 @@ extern "C" {
typedef struct dag_node_t dag_node_t;
/* Fill *NODE with a dag_node_t representing node revision ID in FS,
- allocating in POOL. */
+ allocating in RESULT_POOL. */
svn_error_t *
svn_fs_x__dag_get_node(dag_node_t **node,
svn_fs_t *fs,
const svn_fs_x__id_t *id,
- apr_pool_t *pool);
+ apr_pool_t *result_pool);
/* Return a new dag_node_t object referring to the same node as NODE,
- allocated in POOL. If you're trying to build a structure in a
+ allocated in RESULT_POOL. If you're trying to build a structure in a
pool that wants to refer to dag nodes that may have been allocated
elsewhere, you can call this function and avoid inter-pool pointers. */
dag_node_t *
svn_fs_x__dag_dup(const dag_node_t *node,
- apr_pool_t *pool);
+ apr_pool_t *result_pool);
/* If NODE has been allocated in POOL, return NODE. Otherwise, return
- a copy created in POOL with svn_fs_fs__dag_dup. */
+ a copy created in RESULT_POOL with svn_fs_fs__dag_dup. */
dag_node_t *
svn_fs_x__dag_copy_into_pool(dag_node_t *node,
- apr_pool_t *pool);
+ apr_pool_t *result_pool);
/* Serialize a DAG node, except don't try to preserve the 'fs' member.
Implements svn_cache__serialize_func_t */
@@ -286,12 +286,12 @@ svn_fs_x__dag_txn_base_root(dag_node_t *
/* Clone the root directory of TXN_ID in FS, and update the
`transactions' table entry to point to it, unless this has been
done already. In either case, set *ROOT_P to a reference to the
- root directory clone. Allocate *ROOT_P in POOL. */
+ root directory clone. Allocate *ROOT_P in RESULT_POOL. */
svn_error_t *
svn_fs_x__dag_clone_root(dag_node_t **root_p,
svn_fs_t *fs,
svn_fs_x__txn_id_t txn_id,
- apr_pool_t *pool);
+ apr_pool_t *result_pool);
@@ -514,18 +514,16 @@ svn_fs_x__dag_file_length(svn_filesize_t
apr_pool_t *pool);
/* Put the recorded checksum of type KIND for FILE into CHECKSUM, allocating
- from POOL.
+ from RESULT_POOL.
If no stored checksum is available, do not calculate the checksum,
just put NULL into CHECKSUM.
-
- Use POOL for all allocations.
*/
svn_error_t *
svn_fs_x__dag_file_checksum(svn_checksum_t **checksum,
dag_node_t *file,
svn_checksum_kind_t kind,
- apr_pool_t *pool);
+ apr_pool_t *result_pool);
/* Create a new mutable file named NAME in PARENT. Set *CHILD_P to a
reference to the new node, allocated in POOL. The new file's