Author: stefan2
Date: Fri Dec 22 13:06:58 2017
New Revision: 1819037

URL: http://svn.apache.org/viewvc?rev=1819037&view=rev
Log:
Fix inconsistent handling of svn_dirent_t.size for directories.

Most code uses SVN_INVALID_FILESIZE for them, so change the docs to match
that fact and update all users to consistently follow the new docstring.

* subversion/include/svn_types.h
   (svn_dirent_t): Change documentation for SIZE.

* subversion/libsvn_ra_local/ra_plugin.c
   (svn_ra_local__get_dir): Return the new default for directories.

* subversion/libsvn_ra_serf/list.c
   (item_closed): Be sure to default to SVN_INVALID_FILESIZE.

* subversion/libsvn_repos/list.c
   (fill_dirent): Set SIZE consistently with other RA layers.

Modified:
    subversion/trunk/subversion/include/svn_types.h
    subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
    subversion/trunk/subversion/libsvn_ra_serf/list.c
    subversion/trunk/subversion/libsvn_repos/list.c

Modified: subversion/trunk/subversion/include/svn_types.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_types.h?rev=1819037&r1=1819036&r2=1819037&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_types.h (original)
+++ subversion/trunk/subversion/include/svn_types.h Fri Dec 22 13:06:58 2017
@@ -652,7 +652,7 @@ typedef struct svn_dirent_t
   /** node kind */
   svn_node_kind_t kind;
 
-  /** length of file text, or 0 for directories */
+  /** length of file text, otherwise SVN_INVALID_FILESIZE */
   svn_filesize_t size;
 
   /** does the node have props? */

Modified: subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c?rev=1819037&r1=1819036&r2=1819037&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c Fri Dec 22 13:06:58 
2017
@@ -1387,7 +1387,7 @@ svn_ra_local__get_dir(svn_ra_session_t *
             {
               /* size  */
               if (fs_entry->kind == svn_node_dir)
-                entry->size = 0;
+                entry->size = SVN_INVALID_FILESIZE;
               else
                 SVN_ERR(svn_fs_file_length(&(entry->size), root,
                                            fullpath, iterpool));

Modified: subversion/trunk/subversion/libsvn_ra_serf/list.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/list.c?rev=1819037&r1=1819036&r2=1819037&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/list.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/list.c Fri Dec 22 13:06:58 2017
@@ -139,6 +139,8 @@ item_closed(svn_ra_serf__xml_estate_t *x
 
       if (size)
         SVN_ERR(svn_cstring_atoi64(&dirent.size, size));
+      else
+        dirent.size = SVN_INVALID_FILESIZE;
 
       if (crev)
         SVN_ERR(svn_revnum_parse(&dirent.created_rev, crev, NULL));

Modified: subversion/trunk/subversion/libsvn_repos/list.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/list.c?rev=1819037&r1=1819036&r2=1819037&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/list.c (original)
+++ subversion/trunk/subversion/libsvn_repos/list.c Fri Dec 22 13:06:58 2017
@@ -51,7 +51,7 @@ fill_dirent(svn_dirent_t *dirent,
   if (dirent->kind == svn_node_file)
     SVN_ERR(svn_fs_file_length(&(dirent->size), root, path, scratch_pool));
   else
-    dirent->size = 0;
+    dirent->size = SVN_INVALID_FILESIZE;
 
   SVN_ERR(svn_fs_node_has_props(&dirent->has_props, root, path,
                                 scratch_pool));


Reply via email to