[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: question about range_intersect() and range_contains() functions

From: Malcolm Rowe <malcolm-svn-dev_at_farside.org.uk>
Date: 2006-07-06 14:08:57 CEST

On Thu, Jul 06, 2006 at 05:44:45PM +0530, Madan U Sreenivasan wrote:
> On Thu, 06 Jul 2006 17:08:03 +0530, Malcolm Rowe
> <malcolm-svn-dev@farside.org.uk> wrote:
>
> >On Thu, Jul 06, 2006 at 04:53:31PM +0530, Madan U Sreenivasan wrote:
> >> In the merge-tracking branch, I notice that the range_intersect() and
> >>the range_contains() functions in the
> >>subversion/libsvn_subr/mergeinfo.c file are single line functions. Am
> >>thinking why not make them a macro. Is there any specific reason these
> >>are
> >>functions?
> >>
> >
> >Are these public functions? (I haven't looked). If so, making them
> >macros would mean that we couldn't change the implementation, which
> >might be a good reason to keep them as functions.
>
> no these are static functions.
>

Ok, so what's the benefit of using a macro here? (which is what I should
have asked first).

The compiler can easily inline a static function if it thinks that's
the right thing to do (given the current optimisation settings), and
functions have argument type-checking and obvious side effects, which
macros don't.

Really, the rule should be that we only use macros where we absolutely
have to. (Implying that the MAX() macro at the top of mergeinfo.c should
probably be a function too, although MAX is sometime defined by the C
library, so maybe that's okay).

Regards,
Malcolm

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jul 6 14:09:34 2006

This is an archived mail posted to the Subversion Dev mailing list.