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 2013/07/20 02:12:01 UTC
svn commit: r1505068 - in /subversion/trunk: ./ subversion/libsvn_subr/io.c
Author: stefan2
Date: Sat Jul 20 00:12:00 2013
New Revision: 1505068
URL: http://svn.apache.org/r1505068
Log:
Merged revision 1446103 from subversion/branches/fsfs-format7:
Speed up stringbuf_from_aprfile() in case the file size is known.
Modified:
subversion/trunk/ (props changed)
subversion/trunk/subversion/libsvn_subr/io.c
Propchange: subversion/trunk/
------------------------------------------------------------------------------
Merged /subversion/branches/fsfs-format7:r1446103
Modified: subversion/trunk/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?rev=1505068&r1=1505067&r2=1505068&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/io.c (original)
+++ subversion/trunk/subversion/libsvn_subr/io.c Sat Jul 20 00:12:00 2013
@@ -2336,7 +2336,19 @@ stringbuf_from_aprfile(svn_stringbuf_t *
{
apr_finfo_t finfo;
if (! (status = apr_stat(&finfo, filename, APR_FINFO_MIN, pool)))
- res_initial_len = (apr_size_t)finfo.size;
+ {
+ /* we've got the file length. Now, read it in one go. */
+ svn_boolean_t eof;
+ res_initial_len = (apr_size_t)finfo.size;
+ res = svn_stringbuf_create_ensure(res_initial_len, pool);
+ SVN_ERR(svn_io_file_read_full2(file, res->data,
+ res_initial_len, &res->len,
+ &eof, pool));
+ res->data[res->len] = 0;
+
+ *result = res;
+ return SVN_NO_ERROR;
+ }
}
}