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