[vtk-developers] vtkMathTextUtilities and otherPrint test

David Cole david.cole at kitware.com
Tue Jul 10 14:07:04 EDT 2012


There are 4,953 occurrences of "goto" in VTK 'master' today:
  4,828 in ThirdParty/
  125 in VTK itself

If nothing else, there's certainly a strong cultural bias against the use
of goto in VTK code.

I don't like them, and I don't know anybody who really is a fan.

But if you think your code is more readable and maintainable with them,
then goto it.

I am a very big fan of readability and maintainability. Although I really
don't have a hard time reading either style... And just the presence of the
"goto" makes my brain do a little double-take jump when I do see it.

There is precedence for allowing "goto" -- albeit sparingly.


David C.


On Tue, Jul 10, 2012 at 1:48 PM, David Lonie <david.lonie at kitware.com>wrote:

> On Tue, Jul 10, 2012 at 1:32 PM, David Cole <david.cole at kitware.com>
> wrote:
> > Instead of the goto's, how about something like:
> >
> >   bool err = this->CheckForError();
> >
> > if (!err)
> > {
> >    mplMathTextLib = PyImport_ImportModule("matplotlib.mathtext");
> >    err = this->CheckForError(mplMathTextLib);
> > }
> >
> > [snip]
> >
> > if (err)
> >      {
> >      // in case the error was an exception.
> >      delete this->Parser;
> >      this->Parser = NULL;
> >     }
> > }
>
> That would work, but I think it loses quite a bit of readability,
> especially if applied to something like this (taken from a local patch
> I'm working on):
>
> http://codepad.org/E1DVBfhY
>
> That snippet has a somewhat complicated loop and needs to clean up
> objects in a couple of places mid-loop and also before returning. It
> could be converted to something like above, but I still think gotos
> are the best solution here.
>
> Is there an argument against them, other than that they're unusual in
> c++? IMO I think they're fine in simple cases like these.
>
> Dave (the other-other dave)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20120710/3432b3ee/attachment.html>


More information about the vtk-developers mailing list