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/15 11:30:14 UTC

svn commit: r1645612 - in /subversion/branches/fsx-id/subversion/libsvn_fs_x: cached_data.c cached_data.h tree.c

Author: stefan2
Date: Mon Dec 15 10:30:13 2014
New Revision: 1645612

URL: http://svn.apache.org/r1645612
Log:
On the fsx-id branch:
Switch another cache-layer internal API away from svn_fs_t.

* subversion/libsvn_fs_x/cached_data.h
  (svn_fs_x__get_mergeinfo_count): Switch the ID type.

* subversion/libsvn_fs_x/cached_data.c
  (svn_fs_x__get_mergeinfo_count): Update implementation.

* subversion/libsvn_fs_x/tree.c
  (verify_node): Update caller.

Modified:
    subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.c
    subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.h
    subversion/branches/fsx-id/subversion/libsvn_fs_x/tree.c

Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.c?rev=1645612&r1=1645611&r2=1645612&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.c Mon Dec 15 10:30:13 2014
@@ -397,22 +397,21 @@ svn_fs_x__get_node_revision(node_revisio
 svn_error_t *
 svn_fs_x__get_mergeinfo_count(apr_int64_t *count,
                               svn_fs_t *fs,
-                              const svn_fs_id_t *id,
+                              const svn_fs_x__noderev_id_t *id,
                               apr_pool_t *pool)
 {
   node_revision_t *noderev;
-  const svn_fs_x__id_part_t *noderev_id = svn_fs_x__id_noderev_id(id);
 
   /* If we want a full acccess log, we need to provide full data and
      cannot take shortcuts here. */
 #if !defined(SVN_FS_X__LOG_ACCESS)
 
   /* First, try a noderevs container cache lookup. */
-  if (! svn_fs_x__id_is_txn(id))
+  if (! svn_fs_x__is_txn(id->change_set))
     {
       /* noderevs in rev / pack files can be cached */
       fs_x_data_t *ffd = fs->fsap_data;
-      svn_revnum_t revision = svn_fs_x__get_revnum(noderev_id->change_set);
+      svn_revnum_t revision = svn_fs_x__get_revnum(id->change_set);
 
       svn_fs_x__revision_file_t *rev_file;
       SVN_ERR(svn_fs_x__open_pack_or_rev_file(&rev_file, fs, revision, pool,
@@ -427,7 +426,7 @@ svn_fs_x__get_mergeinfo_count(apr_int64_
           svn_boolean_t is_cached;
 
           SVN_ERR(svn_fs_x__item_offset(&offset, &sub_item, fs, rev_file,
-                                        noderev_id, pool));
+                                        id, pool));
           key.revision = svn_fs_x__packed_base_rev(fs, revision);
           key.second = offset;
 
@@ -442,7 +441,7 @@ svn_fs_x__get_mergeinfo_count(apr_int64_
 #endif
 
   /* fallback to the naive implementation handling all edge cases */
-  SVN_ERR(svn_fs_x__get_node_revision(&noderev, fs, noderev_id, pool, pool));
+  SVN_ERR(svn_fs_x__get_node_revision(&noderev, fs, id, pool, pool));
   *count = noderev->mergeinfo_count;
 
   return SVN_NO_ERROR;

Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.h?rev=1645612&r1=1645611&r2=1645612&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.h (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/cached_data.h Mon Dec 15 10:30:13 2014
@@ -45,7 +45,7 @@ svn_fs_x__get_node_revision(node_revisio
 svn_error_t *
 svn_fs_x__get_mergeinfo_count(apr_int64_t *count,
                               svn_fs_t *fs,
-                              const svn_fs_id_t *id,
+                              const svn_fs_x__noderev_id_t *id,
                               apr_pool_t *pool);
 
 /* Set *ROOT_ID to the node-id for the root of revision REV in

Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/tree.c?rev=1645612&r1=1645611&r2=1645612&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/tree.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/tree.c Mon Dec 15 10:30:13 2014
@@ -4334,8 +4334,11 @@ verify_node(dag_node_t *node,
             }
           else
             {
+              const svn_fs_x__noderev_id_t *noderev_id
+                = svn_fs_x__id_noderev_id(dirent->id);
+
               SVN_ERR(svn_fs_x__get_mergeinfo_count(&child_mergeinfo, fs,
-                                                    dirent->id, iterpool));
+                                                    noderev_id, iterpool));
             }
 
           children_mergeinfo += child_mergeinfo;