You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/05/11 22:11:52 UTC

svn commit: r1102060 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c

Author: julianfoad
Date: Wed May 11 20:11:51 2011
New Revision: 1102060

URL: http://svn.apache.org/viewvc?rev=1102060&view=rev
Log:
Code simplification.

* /home/julianfoad/src/subversion-d/subversion/libsvn_ra_serf/commit.c
  (derive_old_val): Remove a level of indirection, type casts and memory
    allocations. Add an output flag instead. Add a doc string.
  (proppatch_walker): Update accordingly.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/commit.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1102060&r1=1102059&r2=1102060&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Wed May 11 20:11:51 2011
@@ -671,42 +671,45 @@ typedef struct walker_baton_t {
   svn_boolean_t deleting;
 } walker_baton_t;
 
+/* If we have (recorded in WB) the old value of the property named NS:NAME,
+ * then set *HAVE_OLD_VAL to TRUE and set *OLD_VAL_P to that old value
+ * (which may be NULL); else set *HAVE_OLD_VAL to FALSE.
+ *
+ * Allocate *OLD_VAL_P in POOL. */
 static svn_error_t *
-derive_old_val(const svn_string_t *const *   *old_val_p_p,
+derive_old_val(svn_boolean_t *have_old_val,
+               const svn_string_t **old_val_p,
                walker_baton_t *wb,
                const char *ns,
                const char *name,
                apr_pool_t *pool)
 {
-  const svn_string_t *const *old_val_p;
-
-  old_val_p = NULL;
+  *have_old_val = FALSE;
 
   if (wb->previous_changed_props)
     {
-      const svn_string_t *old_val;
-      old_val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
-                                             wb->path, ns, name);
-      if (old_val)
+      const svn_string_t *val;
+      val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
+                                         wb->path, ns, name);
+      if (val)
         {
-          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
-          *(const svn_string_t **)old_val_p = svn_string_dup(old_val, pool);
+          *have_old_val = TRUE;
+          *old_val_p = svn_string_dup(val, pool);
         }
     }
 
   if (wb->previous_removed_props)
     {
-      const svn_string_t *old_val;
-      old_val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
-                                             wb->path, ns, name);
-      if (old_val)
+      const svn_string_t *val;
+      val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
+                                         wb->path, ns, name);
+      if (val)
         {
-          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
-          *(const svn_string_t **)old_val_p = NULL;
+          *have_old_val = TRUE;
+          *old_val_p = NULL;
         }
     }
 
-  *old_val_p_p = old_val_p;
   return SVN_NO_ERROR;
 }
 
@@ -722,7 +725,8 @@ proppatch_walker(void *baton,
   serf_bucket_t *cdata_bkt;
   serf_bucket_alloc_t *alloc;
   const char *encoding;
-  const svn_string_t *const *old_val_p;
+  svn_boolean_t have_old_val;
+  const svn_string_t *old_val;
   const svn_string_t *encoded_value;
   char *prop_name;
 
@@ -733,15 +737,15 @@ proppatch_walker(void *baton,
   else if (strcmp(ns, SVN_DAV_PROP_NS_CUSTOM) == 0)
     prop_name = apr_pstrcat(pool, "C:", name, (char *)NULL);
 
-  SVN_ERR(derive_old_val(&old_val_p, wb, ns, name, pool));
+  SVN_ERR(derive_old_val(&have_old_val, &old_val, wb, ns, name, pool));
 
   /* Jump through hoops to work with D:remove and its val = (""-for-NULL)
    * representation. */
   if (wb->filter != filter_all_props)
     {
-      if (wb->filter == filter_props_with_old_value && ! old_val_p)
+      if (wb->filter == filter_props_with_old_value && ! have_old_val)
       	return SVN_NO_ERROR;
-      if (wb->filter == filter_props_without_old_value && old_val_p)
+      if (wb->filter == filter_props_without_old_value && have_old_val)
       	return SVN_NO_ERROR;
     }
   if (wb->deleting)
@@ -770,14 +774,14 @@ proppatch_walker(void *baton,
                                       "V:" SVN_DAV__OLD_VALUE__ABSENT, "1",
                                       NULL);
 
-  if (old_val_p)
+  if (have_old_val)
     {
       const char *encoding2;
       const svn_string_t *encoded_value2;
       serf_bucket_t *cdata_bkt2;
 
       SVN_ERR(get_encoding_and_cdata(&encoding2, &encoded_value2,
-                                     alloc, *old_val_p, pool));
+                                     alloc, old_val, pool));
 
       if (encoded_value2)
         {



Re: svn commit: r1102060 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c

Posted by Julian Foad <ju...@wandisco.com>.
Daniel Shahaf wrote:
> julianfoad@apache.org wrote on Wed, May 11, 2011 at 20:11:52 -0000:
> > Code simplification.
> > 
> > * /home/julianfoad/src/subversion-d/subversion/libsvn_ra_serf/commit.c
> 
> Wrong path, also in some other commits today.

Thanks for telling me!  I fixed this and three others from the same day,
and some more from longer ago.

> (And thanks for the simplifications!)

You're welcome.

- Julian



Re: svn commit: r1102060 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c

Posted by Julian Foad <ju...@wandisco.com>.
Daniel Shahaf wrote:
> julianfoad@apache.org wrote on Wed, May 11, 2011 at 20:11:52 -0000:
> > Code simplification.
> > 
> > * /home/julianfoad/src/subversion-d/subversion/libsvn_ra_serf/commit.c
> 
> Wrong path, also in some other commits today.

Thanks for telling me!  I fixed this and three others from the same day,
and some more from longer ago.

> (And thanks for the simplifications!)

You're welcome.

- Julian



Re: svn commit: r1102060 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
julianfoad@apache.org wrote on Wed, May 11, 2011 at 20:11:52 -0000:
> Author: julianfoad
> Date: Wed May 11 20:11:51 2011
> New Revision: 1102060
> 
> URL: http://svn.apache.org/viewvc?rev=1102060&view=rev
> Log:
> Code simplification.
> 
> * /home/julianfoad/src/subversion-d/subversion/libsvn_ra_serf/commit.c

Wrong path, also in some other commits today.

(And thanks for the simplifications!)

>   (derive_old_val): Remove a level of indirection, type casts and memory
>     allocations. Add an output flag instead. Add a doc string.
>   (proppatch_walker): Update accordingly.
> 
> Modified:
>     subversion/trunk/subversion/libsvn_ra_serf/commit.c
> 
> Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1102060&r1=1102059&r2=1102060&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
> +++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Wed May 11 20:11:51 2011
> @@ -671,42 +671,45 @@ typedef struct walker_baton_t {
>    svn_boolean_t deleting;
>  } walker_baton_t;
>  
> +/* If we have (recorded in WB) the old value of the property named NS:NAME,
> + * then set *HAVE_OLD_VAL to TRUE and set *OLD_VAL_P to that old value
> + * (which may be NULL); else set *HAVE_OLD_VAL to FALSE.
> + *
> + * Allocate *OLD_VAL_P in POOL. */
>  static svn_error_t *
> -derive_old_val(const svn_string_t *const *   *old_val_p_p,
> +derive_old_val(svn_boolean_t *have_old_val,
> +               const svn_string_t **old_val_p,
>                 walker_baton_t *wb,
>                 const char *ns,
>                 const char *name,
>                 apr_pool_t *pool)
>  {
> -  const svn_string_t *const *old_val_p;
> -
> -  old_val_p = NULL;
> +  *have_old_val = FALSE;
>  
>    if (wb->previous_changed_props)
>      {
> -      const svn_string_t *old_val;
> -      old_val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
> -                                             wb->path, ns, name);
> -      if (old_val)
> +      const svn_string_t *val;
> +      val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
> +                                         wb->path, ns, name);
> +      if (val)
>          {
> -          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
> -          *(const svn_string_t **)old_val_p = svn_string_dup(old_val, pool);
> +          *have_old_val = TRUE;
> +          *old_val_p = svn_string_dup(val, pool);
>          }
>      }
>  
>    if (wb->previous_removed_props)
>      {
> -      const svn_string_t *old_val;
> -      old_val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
> -                                             wb->path, ns, name);
> -      if (old_val)
> +      const svn_string_t *val;
> +      val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
> +                                         wb->path, ns, name);
> +      if (val)
>          {
> -          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
> -          *(const svn_string_t **)old_val_p = NULL;
> +          *have_old_val = TRUE;
> +          *old_val_p = NULL;
>          }
>      }
>  
> -  *old_val_p_p = old_val_p;
>    return SVN_NO_ERROR;
>  }
>  
> @@ -722,7 +725,8 @@ proppatch_walker(void *baton,
>    serf_bucket_t *cdata_bkt;
>    serf_bucket_alloc_t *alloc;
>    const char *encoding;
> -  const svn_string_t *const *old_val_p;
> +  svn_boolean_t have_old_val;
> +  const svn_string_t *old_val;
>    const svn_string_t *encoded_value;
>    char *prop_name;
>  
> @@ -733,15 +737,15 @@ proppatch_walker(void *baton,
>    else if (strcmp(ns, SVN_DAV_PROP_NS_CUSTOM) == 0)
>      prop_name = apr_pstrcat(pool, "C:", name, (char *)NULL);
>  
> -  SVN_ERR(derive_old_val(&old_val_p, wb, ns, name, pool));
> +  SVN_ERR(derive_old_val(&have_old_val, &old_val, wb, ns, name, pool));
>  
>    /* Jump through hoops to work with D:remove and its val = (""-for-NULL)
>     * representation. */
>    if (wb->filter != filter_all_props)
>      {
> -      if (wb->filter == filter_props_with_old_value && ! old_val_p)
> +      if (wb->filter == filter_props_with_old_value && ! have_old_val)
>        	return SVN_NO_ERROR;
> -      if (wb->filter == filter_props_without_old_value && old_val_p)
> +      if (wb->filter == filter_props_without_old_value && have_old_val)
>        	return SVN_NO_ERROR;
>      }
>    if (wb->deleting)
> @@ -770,14 +774,14 @@ proppatch_walker(void *baton,
>                                        "V:" SVN_DAV__OLD_VALUE__ABSENT, "1",
>                                        NULL);
>  
> -  if (old_val_p)
> +  if (have_old_val)
>      {
>        const char *encoding2;
>        const svn_string_t *encoded_value2;
>        serf_bucket_t *cdata_bkt2;
>  
>        SVN_ERR(get_encoding_and_cdata(&encoding2, &encoded_value2,
> -                                     alloc, *old_val_p, pool));
> +                                     alloc, old_val, pool));
>  
>        if (encoded_value2)
>          {
> 
> 

Re: svn commit: r1102060 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
julianfoad@apache.org wrote on Wed, May 11, 2011 at 20:11:52 -0000:
> Author: julianfoad
> Date: Wed May 11 20:11:51 2011
> New Revision: 1102060
> 
> URL: http://svn.apache.org/viewvc?rev=1102060&view=rev
> Log:
> Code simplification.
> 
> * /home/julianfoad/src/subversion-d/subversion/libsvn_ra_serf/commit.c

Wrong path, also in some other commits today.

(And thanks for the simplifications!)

>   (derive_old_val): Remove a level of indirection, type casts and memory
>     allocations. Add an output flag instead. Add a doc string.
>   (proppatch_walker): Update accordingly.
> 
> Modified:
>     subversion/trunk/subversion/libsvn_ra_serf/commit.c
> 
> Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1102060&r1=1102059&r2=1102060&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
> +++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Wed May 11 20:11:51 2011
> @@ -671,42 +671,45 @@ typedef struct walker_baton_t {
>    svn_boolean_t deleting;
>  } walker_baton_t;
>  
> +/* If we have (recorded in WB) the old value of the property named NS:NAME,
> + * then set *HAVE_OLD_VAL to TRUE and set *OLD_VAL_P to that old value
> + * (which may be NULL); else set *HAVE_OLD_VAL to FALSE.
> + *
> + * Allocate *OLD_VAL_P in POOL. */
>  static svn_error_t *
> -derive_old_val(const svn_string_t *const *   *old_val_p_p,
> +derive_old_val(svn_boolean_t *have_old_val,
> +               const svn_string_t **old_val_p,
>                 walker_baton_t *wb,
>                 const char *ns,
>                 const char *name,
>                 apr_pool_t *pool)
>  {
> -  const svn_string_t *const *old_val_p;
> -
> -  old_val_p = NULL;
> +  *have_old_val = FALSE;
>  
>    if (wb->previous_changed_props)
>      {
> -      const svn_string_t *old_val;
> -      old_val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
> -                                             wb->path, ns, name);
> -      if (old_val)
> +      const svn_string_t *val;
> +      val = svn_ra_serf__get_prop_string(wb->previous_changed_props,
> +                                         wb->path, ns, name);
> +      if (val)
>          {
> -          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
> -          *(const svn_string_t **)old_val_p = svn_string_dup(old_val, pool);
> +          *have_old_val = TRUE;
> +          *old_val_p = svn_string_dup(val, pool);
>          }
>      }
>  
>    if (wb->previous_removed_props)
>      {
> -      const svn_string_t *old_val;
> -      old_val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
> -                                             wb->path, ns, name);
> -      if (old_val)
> +      const svn_string_t *val;
> +      val = svn_ra_serf__get_prop_string(wb->previous_removed_props,
> +                                         wb->path, ns, name);
> +      if (val)
>          {
> -          old_val_p = apr_pcalloc(pool, sizeof(*old_val_p));
> -          *(const svn_string_t **)old_val_p = NULL;
> +          *have_old_val = TRUE;
> +          *old_val_p = NULL;
>          }
>      }
>  
> -  *old_val_p_p = old_val_p;
>    return SVN_NO_ERROR;
>  }
>  
> @@ -722,7 +725,8 @@ proppatch_walker(void *baton,
>    serf_bucket_t *cdata_bkt;
>    serf_bucket_alloc_t *alloc;
>    const char *encoding;
> -  const svn_string_t *const *old_val_p;
> +  svn_boolean_t have_old_val;
> +  const svn_string_t *old_val;
>    const svn_string_t *encoded_value;
>    char *prop_name;
>  
> @@ -733,15 +737,15 @@ proppatch_walker(void *baton,
>    else if (strcmp(ns, SVN_DAV_PROP_NS_CUSTOM) == 0)
>      prop_name = apr_pstrcat(pool, "C:", name, (char *)NULL);
>  
> -  SVN_ERR(derive_old_val(&old_val_p, wb, ns, name, pool));
> +  SVN_ERR(derive_old_val(&have_old_val, &old_val, wb, ns, name, pool));
>  
>    /* Jump through hoops to work with D:remove and its val = (""-for-NULL)
>     * representation. */
>    if (wb->filter != filter_all_props)
>      {
> -      if (wb->filter == filter_props_with_old_value && ! old_val_p)
> +      if (wb->filter == filter_props_with_old_value && ! have_old_val)
>        	return SVN_NO_ERROR;
> -      if (wb->filter == filter_props_without_old_value && old_val_p)
> +      if (wb->filter == filter_props_without_old_value && have_old_val)
>        	return SVN_NO_ERROR;
>      }
>    if (wb->deleting)
> @@ -770,14 +774,14 @@ proppatch_walker(void *baton,
>                                        "V:" SVN_DAV__OLD_VALUE__ABSENT, "1",
>                                        NULL);
>  
> -  if (old_val_p)
> +  if (have_old_val)
>      {
>        const char *encoding2;
>        const svn_string_t *encoded_value2;
>        serf_bucket_t *cdata_bkt2;
>  
>        SVN_ERR(get_encoding_and_cdata(&encoding2, &encoded_value2,
> -                                     alloc, *old_val_p, pool));
> +                                     alloc, old_val, pool));
>  
>        if (encoded_value2)
>          {
> 
>