[ros-dev] Re: [ros-svn] [gdalsnes] 18113:-reorderInsertXscendingOrder macro argument order and update uses

Ge van Geldorp gvg at reactos.com
Wed Sep 28 09:04:43 CEST 2005


> From: Gunnar Dalsnes
>
> > And I think these macro's are a perfect example of 
> > Phillip's point. I have no idea how the flow of
> > control is without looking at the macro definitions.
> 
> Sure you do, if you try _reeeealy_ hard;-P

No, really, I don't <<without looking at the macro definitions>>. RETURN
sounds much like return, it is non-obvious that they're actually goto's to
CLEANUP. Ofcourse, I figured it out when you committed that stuff 3 weeks
ago, but when looking at it last night it was again non-obvious to me.
On the other hand, I had no problem whatsoever figuring out the macro-free
code that Nathan posted:

BOOL NtFunc()
{
  BOOL bResult;
  void *pPointer = NULL;

  Lock();

  if (Stuff)
  {
    bResult = FALSE;
    goto cleanup;
  }
  ....

  bResult = TRUE;

cleanup:
  if (pPointer)
    free(pPointer);
  Unlock(stuff);
  DPRINT1("NtFunc returned %i\n", bResult);
  return bResult;
}

> 2)Using gotos are much more ugly imo.

Oh, so goto's are acceptable if and only if you hide them out of sight?

Gé van Geldorp.






More information about the Ros-dev mailing list