You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/05/17 16:34:17 UTC
svn commit: r1104284 - /subversion/trunk/subversion/libsvn_wc/wc_db.c
Author: hwright
Date: Tue May 17 14:34:17 2011
New Revision: 1104284
URL: http://svn.apache.org/viewvc?rev=1104284&view=rev
Log:
Vastly simplify the properties fetching code.
* subversion/libsvn_wc/wc_db.c
(svn_wc__db_read_props_streamily): Use the sqlite properties parsing
function, instead of rolling our own.
Modified:
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1104284&r1=1104283&r2=1104284&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Tue May 17 14:34:17 2011
@@ -7747,8 +7747,7 @@ svn_wc__db_read_props_streamily(svn_wc__
SVN_ERR(svn_sqlite__step(&have_row, stmt));
while (have_row)
{
- const char *prop_data;
- apr_size_t len;
+ apr_hash_t *props;
svn_pool_clear(iterpool);
@@ -7756,48 +7755,19 @@ svn_wc__db_read_props_streamily(svn_wc__
if (cancel_func)
SVN_ERR(cancel_func(cancel_baton));
- prop_data = svn_sqlite__column_blob(stmt, 2, &len, NULL);
- if (prop_data)
+ SVN_ERR(svn_sqlite__column_properties(&props, stmt, 2, iterpool,
+ iterpool));
+ if (props && apr_hash_count(props) != 0)
{
- svn_skel_t *prop_skel;
-
- prop_skel = svn_skel__parse(prop_data, len, iterpool);
- if (svn_skel__list_length(prop_skel) != 0)
- {
- const char *child_relpath;
- const char *child_abspath;
- apr_hash_t *props = NULL;
-
- child_relpath = svn_sqlite__column_text(stmt, 0, NULL);
- child_abspath = svn_dirent_join(wcroot->abspath,
- child_relpath, iterpool);
- if (propname)
- {
- svn_string_t *propval;
+ const char *child_relpath;
+ const char *child_abspath;
- SVN_ERR(svn_skel__parse_prop(&propval, prop_skel, propname,
- iterpool));
- if (propval)
- {
- props = apr_hash_make(iterpool);
- apr_hash_set(props, propname, APR_HASH_KEY_STRING,
- propval);
- }
+ child_relpath = svn_sqlite__column_text(stmt, 0, NULL);
+ child_abspath = svn_dirent_join(wcroot->abspath,
+ child_relpath, iterpool);
- }
- else
- {
- SVN_ERR(svn_skel__parse_proplist(&props, prop_skel,
- iterpool));
- }
-
- if (props && apr_hash_count(props) != 0)
- {
- SVN_ERR((*receiver_func)(receiver_baton,
- child_abspath, props,
- iterpool));
- }
- }
+ SVN_ERR(receiver_func(receiver_baton, child_abspath, props,
+ iterpool));
}
SVN_ERR(svn_sqlite__step(&have_row, stmt));