[vtk-developers] Big list of uninitialized ivars

David Gobbi david.gobbi at gmail.com
Thu Jul 29 08:30:15 EDT 2010


I would like to add to what David Cole said.  These uninitialized
ivars can be very troublesome for people who want to build
object-inspectors for VTK.  It is a very reasonable thing to want to
introspect an object immediately after it has been created.  We don't
want object inspectors to find uninitialized ivars and present their
values to the users.

VTK should have no uninitialized ivars. If the TestSetGet test can
read these ivars uninitialized, then so could an object inspector.

   David


On Thu, Jul 29, 2010 at 5:17 AM, David Cole <david.cole at kitware.com> wrote:
> And yet they should not be ignored: since they "should" be set immediately
> after construction, they "might not" be.
>
> If, however, there is a *guarantee* that they *will* be set immediately
> after construction, I might be persuaded to make an exception. But probably
> not.
> Unless there is an important performance reason to ignore these, I would
> strongly recommend *NOT* ignoring them. Address them, be done with it, and
> put it behind... That way, future developers looking at the code will not
> ever have to ask themselves "hmmmm, I wonder if this problem occurs because
> these data members are uninitialized...?"
>
> 2 cents,
> David
>
> On Wed, Jul 28, 2010 at 11:10 PM, Andy Bauer <andy.bauer at kitware.com> wrote:
>>
>> I took care of the ones from vtkPKdTree and vtkOctreePointLocator.
>> According to the documentation/comments the ones in vtkIncrementalOctreeNode
>> can be ignored since they should be set immediately after construction.
>>
>> Andy
>>
>>> Date: Fri, 23 Jul 2010 10:23:26 -0600
>>> From: David Gobbi <david.gobbi at gmail.com>
>>> Subject: [vtk-developers] Big list of uninitialized ivars
>>> To: VTK Developers <vtk-developers at vtk.org>
>>> Message-ID:
>>>        <AANLkTimEegxZJFWsLJX99nmTD-g33WT7xF9Y8-5SwNs9 at mail.gmail.com>
>>> Content-Type: text/plain; charset=ISO-8859-1
>>>
>>> Hi Everyone,
>>>
>>> I was using valgrind on TestSetGet.tcl as a way of testing the
>>> integrity of the new wrappers, and I found a large number of
>>> uninitialized ivars.  Some of these are from methods that used to be
>>> excluded from the test via BTX/ETX, but a lot of them have just always
>>> been there.
>>>
>>> Here is the list (possibly with some repetition):
>>>
>>> vtkPKdTree-GetRegionAssignmentMapLength
>>> vtkModifiedBSPTree-GetLeafNodeCellInformation
>>> vtkOctreePointLocator-GetNumberOfLeafNodes
>>> vtkIncrementalOctreeNode-GetMaxBounds
>>> vtkIncrementalOctreeNode-GetMinBounds
>>> vtkFiniteDifferenceGradientEstimator-GetInputSize
>>> vtkFiniteDifferenceGradientEstimator-GetInputAspect
>>>
>>> vtkPCosmoHaloFinder-GetNP
>>> vtkXMLUnstructuredGridReader-GetClassName
>>> vtkWindBladeReader-GetWholeExtent
>>> vtkWindBladeReader-GetSubExtent
>>> vtkVPICReader-GetStride
>>> vtkVPICReader-GetXLayout
>>> vtkVPICReader-GetYLayout
>>> vtkVPICReader-GetZLayout
>>>
>>> vtkDICOMImageReader-GetImagePositionPatient
>>> vtkDICOMImageReader-GetImageOrientationPatient
>>> vtkMedicalImageProperties-GetPatientBirthDateYear
>>> vtkMedicalImageProperties-GetPatientBirthDateMonth
>>> vtkMedicalImageProperties-GetPatientBirthDateDay
>>> vtkMedicalImageProperties-GetImageDateYear
>>> vtkMedicalImageProperties-GetImageDateMonth
>>> vtkMedicalImageProperties-GetImageDateDay
>>> vtkMedicalImageProperties-GetAcquisitionDateYear
>>> vtkMedicalImageProperties-GetAcquisitionDateMonth
>>> vtkMedicalImageProperties-GetAcquisitionDateDay
>>> vtkMedicalImageProperties-GetStudyTime
>>>
>>> vtkNetCDFPOPReader-GetStride
>>> vtkNetCDFPOPReader-GetBlockReadSize
>>> vtkNetCDFPOPReader-GetNumberOfVariableArrays
>>> vtkNetCDFPOPReader-GetSpacing
>>> vtkNetCDFPOPReader-GetOrigin
>>> vtkNetCDFPOPReader-GetWholeExtent
>>> vtkNetCDFPOPReader-GetSubExtent
>>> vtkNetCDFPOPReader-GetClassName
>>> vtkNetCDFPOPReader-GetFilename
>>> vtkNetCDFPOPReader-GetInput
>>> vtkNetCDFPOPReader-GetOutput
>>> vtkNetCDFPOPReader-GetReleaseDataFlag
>>> vtkNetCDFPOPReader-GetTotalNumberOfInputConnections
>>>
>>> vtkParallelCoordinatesActor-GetTitleTextProperty
>>> vtkParallelCoordinatesActor-GetLabelTextProperty
>>> vtkParallelCoordinatesActor-GetLabelFormat
>>> vtkParallelCoordinatesActor-GetNumberOfLabels
>>> vtkParallelCoordinatesActor-GetNumberOfLabelsMaxValue
>>> vtkParallelCoordinatesActor-GetNumberOfLabelsMinValue
>>> vtkParallelCoordinatesActor-GetIndependentVariables
>>> vtkParallelCoordinatesActor-GetIndependentVariablesMaxValue
>>> vtkParallelCoordinatesActor-GetIndependentVariablesMinValue
>>> vtkParallelCoordinatesActor-GetInput
>>> vtkParallelCoordinatesActor-GetTitle
>>> vtkParallelCoordinatesActor-GetClassName
>>> vtkParallelCoordinatesInteractorStyle-GetCursorLastPosition
>>> vtkParallelCoordinatesInteractorStyle-GetCursorStartPosition
>>> vtkParallelCoordinatesInteractorStyle-GetCursorCurrentPosition
>>> vtkParallelCoordinatesInteractorStyle-GetClassName
>>> vtkParallelCoordinatesInteractorStyle-GetMotionFactor
>>> vtkParallelCoordinatesInteractorStyle-GetTDxStyle
>>> vtkParallelCoordinatesInteractorStyle-GetMouseWheelMotionFactor
>>> vtkParallelCoordinatesInteractorStyle-GetPickColor
>>> vtkParallelCoordinatesInteractorStyle-GetHandleObservers
>>> vtkParallelCoordinatesView-GetCurrentBrushClass
>>> vtkParallelCoordinatesView-GetMaximumNumberOfBrushPoints
>>>
>>> vtkRenderView-GetLabelRenderMode
>>> vtkRenderView-GetLabelPlacementMode
>>> vtkRenderViewBase-GetRenderOnMouseMove
>>> vtkRenderViewBase-GetInteractionMode
>>> vtkTreeAreaView-GetEdgeScalarBarVisibility
>>> vtkTreeAreaView-GetUseRectangularCoordinates
>>> vtkTreeMapView-GetClassName
>>> vtkTreeMapView-GetEdgeScalarBarVisibility
>>> vtkTreeRingView-GetInteriorLogSpacingValue
>>> vtkTreeRingView-GetInteriorRadius
>>> vtkGraphLayoutView-GetVertexScalarBarVisibility
>>> vtkGraphLayoutView-GetEdgeScalarBarVisibility
>>> vtkGraphLayoutView-GetEdgeLabelFontSize
>>> vtkHierarchicalGraphView-GetGraphVisibility
>>> vtkHierarchicalGraphView-GetGraphEdgeLabelFontSize
>>> vtkHierarchycalGraphView-GetBundlingStrength
>>> vtkIcicleView-GetUseGradientColoring
>>> vtkIcicleView-GetLayerThickness
>>> vtkIcicleView-GetRootWidth
>>> vtkGeoView-GetTerrain
>>> vtkGeoView-GetGeoInteractorStyle
>>> vtkGeoView-GetLockHeading
>>> vtkGeoView-GetClassName
>>> vtkGeoView-GetLabelRenderMode
>>> vtkGeoView2D-GetTransform
>>> vtkGeoView2D-GetSurface
>>> vtkGeoView2D-GetClassName
>>> vtkGeoView2D-GetLabelRenderMode
>>>
>>> vtkXOpenGLRenderWindow-GetTextureUnitManager
>>>
>>> vtkInteractorStyleAreaSelectHover-GetStartPosition
>>> vtkInteractorStyleAreaSelectHover-GetEndPosition
>>> vtkInteractorStyleRubberBand3D-GetStartPosition
>>> vtkInteractorStyleRubberBand3D-GetEndPosition
>>> vtkInteractorStyleRubberBand2D-GetStartPosition
>>> vtkInteractorStyleRubberBand2D-GetEndPosition
>>>
>>> vtkVolumeTextureMapper2D-GetInternalSkipFactor
>>> vtkVolumeTextureMapper2D-GetShade
>>> vtkVolumeTextureMapper2D-GetSaveTextures
>>> vtkOpenGLVolumeTextureMapper2D-GetInternalSkipFactor
>>> vtkOpenGLVolumeTextureMapper2D-GetShade
>>> vtkOpenGLVolumeTextureMapper2D-GetSaveTextures
>>>
>>> vtkUnstructuredGridVolumeRayCastMapper-GetImageInUseSize
>>> vtkUnstructuredGridVolumeRayCastMapper-GetImageOrigin
>>> vtkUnstructuredGridVolumeRayCastMapper-GetImageSpacing
>>> vtkUnstructuredGridVolumeRayCastMapper-GetImageViewportSize
>>> vtkUnstructuredGridBunykRayCastFunction-GetImageOrigin
>>> vtkUnstructuredGridBunykRayCastFunction-GetImageSpacing
>>> vtkUnstructuredGridBunykRayCastFunction-GetImageViewportSize
>>> vtkUnstructuredGridVolumeZSweepMapper-GetImageInUseSize
>>> vtkUnstructuredGridVolumeZSweepMapper-GetImageOrigin
>>> vtkUnstructuredGridVolumeZSweepMapper-GetImageSpacing
>>> vtkUnstructuredGridVolumeZSweepMapper-GetImageViewportSize
>>>
>>> == end of list ==
>>
>>
>> _______________________________________________
>> 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
>>
>>
>
>



More information about the vtk-developers mailing list