Mike, this generates a compiler warning (see at the end):

cmpil...@apache.org wrote on Wed, Nov 17, 2010 at 15:26:33 -0000:
> Author: cmpilato
> Date: Wed Nov 17 15:26:33 2010
> New Revision: 1036078
> 
> URL: http://svn.apache.org/viewvc?rev=1036078&view=rev
> Log:
> Fix a library dependency issue which was causing build failures.  (As a
> general rule, code inside the FS providers shouldn't call back into
> the public FS API.)  Sadly, the constraints of our system (namely the
> BDB side of things) necessitate code duplication rather than sharing.

>  svn_error_t *
>  svn_fs_validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
> -                          svn_mergeinfo_t mergeinfo,
>                            svn_fs_t *fs,
> +                          svn_mergeinfo_t mergeinfo,
>                            apr_pool_t *result_pool,
>                            apr_pool_t *scratch_pool);

> @@ -197,6 +197,10 @@ typedef struct fs_vtable_t
>    svn_error_t *(*bdb_set_errcall)(svn_fs_t *fs,
>                                    void (*handler)(const char *errpfx,
>                                                    char *msg));
> +  svn_error_t *(*validate_mergeinfo)(svn_mergeinfo_t *validated_mergeinfo,
> +                                     svn_mergeinfo_t mergeinfo,
> +                                     apr_pool_t *result_pool,
> +                                     apr_pool_t *scratch_pool);
>  } fs_vtable_t;

This function doesn't have an svn_fs_t * parameter...

> +/* Implements svn_fs_validate_mergeinfo. */
> +svn_error_t *
> +svn_fs_base__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
> +                                svn_fs_t *fs,
> +                                svn_mergeinfo_t mergeinfo,
> +                                apr_pool_t *result_pool,
> +                                apr_pool_t *scratch_pool);
> +
> +/* Implements svn_fs_validate_mergeinfo. */
> +svn_error_t *
> +svn_fs_fs__validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
> +                              svn_fs_t *fs,
> +                              svn_mergeinfo_t mergeinfo,
> +                              apr_pool_t *result_pool,
> +                              apr_pool_t *scratch_pool);

but these two do...

> @@ -497,6 +497,7 @@ static fs_vtable_t fs_vtable = {
>    svn_fs_base__get_lock,
>    svn_fs_base__get_locks,
>    base_bdb_set_errcall,
> +  svn_fs_base__validate_mergeinfo,
>  };
> @@ -159,7 +159,8 @@ static fs_vtable_t fs_vtable = {
>    svn_fs_fs__unlock,
>    svn_fs_fs__get_lock,
>    svn_fs_fs__get_locks,
> -  fs_set_errcall
> +  fs_set_errcall,
> +  svn_fs_fs__validate_mergeinfo,
>  };

And therefore:

subversion/libsvn_fs_fs/fs.c:163: warning: initialization from incompatible 
pointer type
subversion/libsvn_fs_base/fs.c:500: warning: initialization from incompatible 
pointer type

Reply via email to