[vtk-developers] RE: Help with vtkLineRepresentationTest1 test

David Cole dlrdave at aol.com
Wed Mar 20 17:15:25 EDT 2013


There’s already this code:

    if (size == NULL)
      {
      return;
      }


Why not just add another similar block?

    if (size[0] == 0 && size[1] == 0)


      {
      return;
      }


I bet all of those tests that assert go through that same code again later after the window really does have a size, and the correct result is used way after this “failure” is presently occurring...

 

 

D

 

 

From: Sean McBride
Sent: ‎March‎ ‎20‎, ‎2013 ‎5‎:‎04‎ ‎PM
To: vtk-developers at vtk.org
Subject: [vtk-developers] Help with vtkLineRepresentationTest1 test


Hi all,

The test 'vtkInteractionWidgetsCxx-vtkLineRepresentationTest1' divides by 0, thus creating a (double) NaN, which it then later tries to convert to float, which is undefined behaviour[1].

The divide-by-zero happens in vtkViewport::DisplayToView() because size[0] and size[1] are zero, which I'm thinking they probably shouldn't be.  Backtrace:

#0  vtkViewport::DisplayToView (this=0x10ff51fc0) at VTK/Rendering/Core/vtkViewport.cxx:209
#1  vtkViewport::DisplayToWorld (this=0x10ff51fc0) at vtkViewport.h:169
#2  vtkInteractorObserver::ComputeDisplayToWorld (ren=0x10ff51fc0, x=-2.5, y=-2.5, z=0.99000990000000011, worldPt=0x7fff5fbfba40) at VTK/Rendering/Core/vtkInteractorObserver.cxx:268
#3  vtkWidgetRepresentation::SizeHandlesInPixels (this=0x10ff21900, factor=1.3500000000000001, pos=0x10ff37a98) at VTK/Interaction/Widgets/vtkWidgetRepresentation.cxx:194
#4  vtkLineRepresentation::SizeHandles (this=0x10ff21900) at VTK/Interaction/Widgets/vtkLineRepresentation.cxx:673
#5  vtkLineRepresentation::BuildRepresentation (this=0x10ff21900) at VTK/Interaction/Widgets/vtkLineRepresentation.cxx:738
#6  vtkLineRepresentationTest1 () at VTK/Interaction/Widgets/Testing/Cxx/vtkLineRepresentationTest1.cxx:21
#7  main (ac=7, av=0x7fff5fbff7b0) at VTK-big-bin/Interaction/Widgets/Testing/Cxx/CxxTests.cxx:587

You can easily reproduce this with any compiler if you add:

    assert(sizex > 0);
    assert(sizey > 0);

to vtkViewport::DisplayToView().  In fact doing so results in 6 different tests asserting.

I don't know how to address this... any thoughts?

[1] or at least sorta undefined:
<http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-March/028596.html>

Thanks,

-- 
____________________________________________________________
Sean McBride, B. Eng                 sean at rogue-research.com
Rogue Research                        www.rogue-research.com 
Mac Software Developer              Montréal, Québec, Canada


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtk-developers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20130320/f079624b/attachment.html>


More information about the vtk-developers mailing list