You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2016/01/09 14:53:21 UTC

svn commit: r1723857 - in /subversion/branches/fs-node-api/subversion: libsvn_fs/fs-loader.c libsvn_fs/fs-loader.h libsvn_fs_base/tree.c libsvn_fs_fs/tree.c libsvn_fs_x/tree.c

Author: ivan
Date: Sat Jan  9 13:53:21 2016
New Revision: 1723857

URL: http://svn.apache.org/viewvc?rev=1723857&view=rev
Log:
On 'fs-node-api' branch: Add svn_fs_root_t vtable member to open FS node.
Fallback to FS node shims only if it NULL.

* subversion/libsvn_fs/fs-loader.h
  (root_vtable_t): Add OPEN_NODE vtable member.

* subversion/libsvn_fs/fs-loader.c
  (svn_fs_open_node): Call root->vtable>open_node() if it's not NULL.
  
* subversion/libsvn_fs_fs/tree.c
* subversion/libsvn_fs_x/tree.c
* subversion/libsvn_fs_base/tree.c
  (root_vtable): Update vtable.

Modified:
    subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.c
    subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.h
    subversion/branches/fs-node-api/subversion/libsvn_fs_base/tree.c
    subversion/branches/fs-node-api/subversion/libsvn_fs_fs/tree.c
    subversion/branches/fs-node-api/subversion/libsvn_fs_x/tree.c

Modified: subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.c?rev=1723857&r1=1723856&r2=1723857&view=diff
==============================================================================
--- subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.c Sat Jan  9 13:53:21 2016
@@ -1062,13 +1062,14 @@ svn_fs_open_node(svn_fs_node_t **node_p,
                  apr_pool_t *result_pool,
                  apr_pool_t *scratch_pool)
 {
-#if 0
   if (root->vtable->open_node)
     {
-      return svn_error_trace(root->vtable->open_node(...));
+      return svn_error_trace(root->vtable->open_node(node_p, root, path,
+                                                     ignore_enoent,
+                                                     result_pool,
+                                                     scratch_pool));
     }
   else
-#endif
     {
       svn_node_kind_t kind;
       SVN_ERR(svn_fs_check_path(&kind, root, path, scratch_pool));

Modified: subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.h
URL: http://svn.apache.org/viewvc/subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.h?rev=1723857&r1=1723856&r2=1723857&view=diff
==============================================================================
--- subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.h (original)
+++ subversion/branches/fs-node-api/subversion/libsvn_fs/fs-loader.h Sat Jan  9 13:53:21 2016
@@ -303,6 +303,12 @@ typedef struct root_vtable_t
                                 apr_pool_t *pool);
 
   /* Generic node operations */
+  svn_error_t *(*open_node)(svn_fs_node_t **node_p,
+                            svn_fs_root_t *root,
+                            const char *path,
+                            svn_boolean_t ignore_enoent,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
   svn_error_t *(*check_path)(svn_node_kind_t *kind_p, svn_fs_root_t *root,
                              const char *path, apr_pool_t *pool);
   svn_error_t *(*node_history)(svn_fs_history_t **history_p,

Modified: subversion/branches/fs-node-api/subversion/libsvn_fs_base/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-node-api/subversion/libsvn_fs_base/tree.c?rev=1723857&r1=1723856&r2=1723857&view=diff
==============================================================================
--- subversion/branches/fs-node-api/subversion/libsvn_fs_base/tree.c (original)
+++ subversion/branches/fs-node-api/subversion/libsvn_fs_base/tree.c Sat Jan  9 13:53:21 2016
@@ -5506,6 +5506,7 @@ base_get_mergeinfo(svn_mergeinfo_catalog
 
 static root_vtable_t root_vtable = {
   base_paths_changed,
+  NULL /* open_node */,
   base_check_path,
   base_node_history,
   base_node_id,

Modified: subversion/branches/fs-node-api/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-node-api/subversion/libsvn_fs_fs/tree.c?rev=1723857&r1=1723856&r2=1723857&view=diff
==============================================================================
--- subversion/branches/fs-node-api/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/branches/fs-node-api/subversion/libsvn_fs_fs/tree.c Sat Jan  9 13:53:21 2016
@@ -4325,6 +4325,7 @@ fs_get_mergeinfo(svn_mergeinfo_catalog_t
 /* The vtable associated with root objects. */
 static root_vtable_t root_vtable = {
   fs_paths_changed,
+  NULL /* open_node */,
   svn_fs_fs__check_path,
   fs_node_history,
   svn_fs_fs__node_id,

Modified: subversion/branches/fs-node-api/subversion/libsvn_fs_x/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-node-api/subversion/libsvn_fs_x/tree.c?rev=1723857&r1=1723856&r2=1723857&view=diff
==============================================================================
--- subversion/branches/fs-node-api/subversion/libsvn_fs_x/tree.c (original)
+++ subversion/branches/fs-node-api/subversion/libsvn_fs_x/tree.c Sat Jan  9 13:53:21 2016
@@ -3170,6 +3170,7 @@ x_get_mergeinfo(svn_mergeinfo_catalog_t
 /* The vtable associated with root objects. */
 static root_vtable_t root_vtable = {
   x_paths_changed,
+  NULL /* open_node */,
   svn_fs_x__check_path,
   x_node_history,
   x_node_id,