Author: danielsh
Date: Sat Jul 24 11:41:59 2010
New Revision: 978851

URL: http://svn.apache.org/viewvc?rev=978851&view=rev
Log:
Add a constructor for svn_config_t.  (The only existing constructor was
svn_config_read(), but it required passing a filepath.)

* subversion/libsvn_subr/config.c
  (svn_config_create):  New, extracted from svn_config_read().
  (svn_config_read):  Remove code now in svn_config_create().

* subversion/include/svn_config.h
  (svn_config_create):  New declaration.

Modified:
    subversion/trunk/subversion/include/svn_config.h
    subversion/trunk/subversion/libsvn_subr/config.c

Modified: subversion/trunk/subversion/include/svn_config.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_config.h?rev=978851&r1=978850&r2=978851&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_config.h (original)
+++ subversion/trunk/subversion/include/svn_config.h Sat Jul 24 11:41:59 2010
@@ -185,6 +185,15 @@ svn_config_get_config(apr_hash_t **cfg_h
                       apr_pool_t *pool);
 
 
+/** Set @a *cfgp to an empty @c svn_config_t structure,
+ * allocated in @a result_pool.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_config_create(svn_config_t **cfgp,
+                  apr_pool_t *result_pool);
+
 /** Read configuration data from @a file (a file or registry path) into
  * @a *cfgp, allocated in @a pool.
  *

Modified: subversion/trunk/subversion/libsvn_subr/config.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config.c?rev=978851&r1=978850&r2=978851&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/config.c (original)
+++ subversion/trunk/subversion/libsvn_subr/config.c Sat Jul 24 11:41:59 2010
@@ -78,18 +78,29 @@ struct cfg_option_t
 
 
 svn_error_t *
+svn_config_create(svn_config_t **cfgp, apr_pool_t *result_pool)
+{
+  svn_config_t *cfg = apr_palloc(result_pool, sizeof(*cfg));
+
+  cfg->sections = apr_hash_make(result_pool);
+  cfg->pool = result_pool;
+  cfg->x_pool = svn_pool_create(result_pool);
+  cfg->x_values = FALSE;
+  cfg->tmp_key = svn_stringbuf_create("", result_pool);
+  cfg->tmp_value = svn_stringbuf_create("", result_pool);
+
+  *cfgp = cfg;
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_config_read(svn_config_t **cfgp, const char *file,
                 svn_boolean_t must_exist, apr_pool_t *pool)
 {
-  svn_config_t *cfg = apr_palloc(pool, sizeof(*cfg));
+  svn_config_t *cfg;
   svn_error_t *err;
 
-  cfg->sections = apr_hash_make(pool);
-  cfg->pool = pool;
-  cfg->x_pool = svn_pool_create(pool);
-  cfg->x_values = FALSE;
-  cfg->tmp_key = svn_stringbuf_create("", pool);
-  cfg->tmp_value = svn_stringbuf_create("", pool);
+  SVN_ERR(svn_config_create(&cfg, pool));
 
   /* Yes, this is platform-specific code in Subversion, but there's no
      practical way to migrate it into APR, as it's simultaneously


Reply via email to