On Tue, Jun 12, 2012 at 3:22 PM,  <stef...@apache.org> wrote:
> Author: stefan2
> Date: Tue Jun 12 13:22:40 2012
> New Revision: 1349316
>
> URL: http://svn.apache.org/viewvc?rev=1349316&view=rev
> Log:
> Fix "unreachable code" warning under Windows. In the for (i=0;i<retries;++i)
> loop header, the ++i would never be executed. So, replace the condition and
> increment with a target-dependent macro.
>
> * subversion/libsvn_fs_fs/fs_fs.c
>  (RECOVERABLE_RETRY_COUNT): drop
>  (RECOVERABLE_RETRY_LOOP): new macro
>  (read_current, revision_proplist, get_and_increment_txn_key_body):
>   use the new macro to guard retries
>
> Modified:
>    subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
> URL: 
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1349316&r1=1349315&r2=1349316&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Tue Jun 12 13:22:40 2012
> @@ -1451,8 +1451,6 @@ svn_fs_fs__upgrade(svn_fs_t *fs, apr_poo
>  * these macros do not.
>  */
>
> -#define RECOVERABLE_RETRY_COUNT 10
> -
>  #ifdef ESTALE
>  /* Do not use do-while due to the embedded 'continue'.  */
>  #define RETRY_RECOVERABLE(err, filehandle, expr)                \
> @@ -1481,9 +1479,12 @@ svn_fs_fs__upgrade(svn_fs_t *fs, apr_poo
>           return svn_error_trace(err);                         \
>       }                                                         \
>   } else
> +#define RECOVERABLE_RETRY_LOOP \
> +  i < RECOVERABLE_RETRY_COUNT; i++
>  #else
>  #define RETRY_RECOVERABLE(err, filehandle, expr)  SVN_ERR(expr)
>  #define IGNORE_RECOVERABLE(err, expr) SVN_ERR(expr)
> +#define RECOVERABLE_RETRY_LOOP ;
>  #endif
>
>  /* Long enough to hold: "<svn_revnum_t> <node id> <copy id>\0"
> @@ -1508,7 +1509,7 @@ read_current(const char *fname, char **b
>
>   *buf = apr_palloc(pool, CURRENT_BUF_LEN);
>   iterpool = svn_pool_create(pool);
> -  for (i = 0; i < RECOVERABLE_RETRY_COUNT; i++)
> +  for (i = 0; RECOVERABLE_RETRY_LOOP)
>     {
>       svn_pool_clear(iterpool);
>
> @@ -3206,7 +3207,7 @@ revision_proplist(apr_hash_t **proplist_
>
>       proplist = apr_hash_make(pool);
>       iterpool = svn_pool_create(pool);
> -      for (i = 0; i < RECOVERABLE_RETRY_COUNT; i++)
> +      for (i = 0; RECOVERABLE_RETRY_LOOP)
>         {
>           svn_pool_clear(iterpool);
>
> @@ -5038,7 +5039,7 @@ get_and_increment_txn_key_body(void *bat
>   cb->txn_id = apr_palloc(cb->pool, MAX_KEY_SIZE);
>
>   iterpool = svn_pool_create(pool);
> -  for (i = 0; i < RECOVERABLE_RETRY_COUNT; ++i)
> +  for (i = 0; RECOVERABLE_RETRY_LOOP)
>     {
>       svn_pool_clear(iterpool);
>
>

On non-windows platforms, this gives:
[[[
subversion/libsvn_fs_fs/fs_fs.c:1512:15: error: use of undeclared identifier
      'RECOVERABLE_RETRY_COUNT'
  for (i = 0; RECOVERABLE_RETRY_LOOP)
              ^
subversion/libsvn_fs_fs/fs_fs.c:1483:7: note: expanded from macro
      'RECOVERABLE_RETRY_LOOP'
  i < RECOVERABLE_RETRY_COUNT; i++
      ^
subversion/libsvn_fs_fs/fs_fs.c:3210:19: error: use of undeclared identifier
      'RECOVERABLE_RETRY_COUNT'
      for (i = 0; RECOVERABLE_RETRY_LOOP)
                  ^
subversion/libsvn_fs_fs/fs_fs.c:1483:7: note: expanded from macro
      'RECOVERABLE_RETRY_LOOP'
  i < RECOVERABLE_RETRY_COUNT; i++
      ^
subversion/libsvn_fs_fs/fs_fs.c:5042:15: error: use of undeclared identifier
      'RECOVERABLE_RETRY_COUNT'
  for (i = 0; RECOVERABLE_RETRY_LOOP)
              ^
subversion/libsvn_fs_fs/fs_fs.c:1483:7: note: expanded from macro
      'RECOVERABLE_RETRY_LOOP'
  i < RECOVERABLE_RETRY_COUNT; i++
      ^
3 errors generated.
]]]

-Hyrum



-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/

Reply via email to