On Mon, Jan 05, 2009 at 12:08:19AM +0100, Stefan Sperling wrote:
> On Sun, Jan 04, 2009 at 08:34:33PM +0200, Daniel Shahaf wrote:
> > Stefan Sperling wrote on Sun, 4 Jan 2009 at 14:39 +0100:
> > > On Sun, Jan 04, 2009 at 09:07:01AM +0200, Daniel Shahaf wrote:
> > > > > > @@ -180,6 +190,8 @@ path_rev_packed(svn_fs_t *fs, svn_revnum
> > > > > > fs_fs_data_t *ffd = fs->fsap_data;
> > > > > > assert(ffd->max_files_per_dir);
> > > > > > + assert(is_packed_rev(fs, rev));
> > > > >
> > > > > We're not using assert() anymore, but SVN_ASSERT(), assuming the method
> > > > > returns an svn_error_t *.
> > > > >
> > > >
> > > > It returns const char *.
> > >
> > > You could probably use SVN_ERR_ASSERT_NO_RETURN() in this case.
> > > It was made for functions that do not return svn_error_t*.
> > >
> > > But assert()s do not get compiled into release builds anyway.
> > > It's aborts() which are really bad when used outside of the
> > > SVN_ERR_ASSERT* macros.
> > >
> >
> > If people think assert()s are bad, we can change those functions so
> > they return 'svn_error_t *' and use SVN_ERR_ASSERT().
>
> Not necessary. SVN_ERR_ASSERT_NO_RETURN() has been designed for
> use in functions that return something other than svn_error_t*.
>
> >From subversion/include/svn_error.h:
Er, I quoted the wrong macro, sorry.
This is the one:
/** Similar to SVN_ERR_ASSERT(), but without the option of returning
* an error to the calling function.
*
* If possible you should use SVN_ERR_ASSERT() instead.
*
* @since New in 1.6.
*/
#define SVN_ERR_ASSERT_NO_RETURN(expr) \
do { \
if (!(expr)) { \
svn_error__malfunction(FALSE, __FILE__, __LINE__, #expr); \
abort(); \
} \
} while (0)
Stefan
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1003879
Received on 2009-01-05 00:14:29 CET