Ben Laurie wrote:
> 
> [EMAIL PROTECTED] wrote:
> > 
> > jim         02/05/02 06:28:46
> > 
> >   Modified:    src/os/unix os.c
> >   Log:
> >   OK. This is admittedly anal. But the whole idea behind cpp macros
> >   is to avoid things like "we know NSLINKMODULE_OPTION_NONE is 0"
> >   and making such shortcuts as this. This makes it clear what exactly
> >   we are setting, and though admittedly verbose, the tradeoff of a
> >   few bytes of source is worth it :)
> 
> Err? But what is the meaning of combining a NONE option with some other?
> Does it mean "we're setting both some and no options"? Very Zen!
> 

The weirdness is due that NSLINKMODULE_OPTION_NONE is actually
part of a triple play of NSLINKMODULE_OPTION_PRIVATE and
NSLINKMODULE_OPTION_BINDNOW, each of which different handles
how Darwin creates "modules". The old function call just allowed
0 or 1 (which was the same as NSLINKMODULE_OPTION_NONE and
NSLINKMODULE_OPTION_BINDNOW, respectively) with no other
"options" available. When Apple changed the API of the
function, they added more capability.

So the NSLINKMODULE_OPTION_NONE is to explicitly state that
we are not binding at that time. The other option is to add
other capability... we're simply setting bits (last arg is
a bitfield flag basically). Functionally it's no diff, but
I'd prefer being clear and safe :)

For those masochists with more interest, I refer you to:
  http://developer.apple.com/techpubs/macosx/ReleaseNotes/CompilerTools.html

-- 
===========================================================================
   Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
      "A society that will trade a little liberty for a little order
             will lose both and deserve neither" - T.Jefferson

Reply via email to