[vtk-developers] Safer item access in Python wrapped VTK arrays
David Gobbi
david.gobbi at gmail.com
Fri Aug 4 13:06:15 EDT 2017
Hi Andras,
Yes, this would be possible. It could be hard-coded into the wrappers, or
even better, in the header file a generic hint could be added to the index
parameter so that the index would be checked against the size of the array:
float GetValue(vtkIdType idx VTK_RANGECHECK(0,GetNumberOfValues()));
I have a list of wrapper hints at http://www.vtk.org/Wiki/VTK/Wrapping_hints,
and I can add this "RANGECHECK" hint to the "Proposed hints" section.
I'm hoping to find time to implement more of these wrapper hints over the
next few weeks.
- David
On Fri, Aug 4, 2017 at 9:53 AM, Andras Lasso <lasso at queensu.ca> wrote:
> Hi David,
>
>
>
> Users who mostly use VTK via Python wrapping are sometimes surprised how
> easily they can crash the application by accessing out-of-bounds elements
> in arrays. For example, this crashes an application:
>
>
>
> >>> a=vtk.vtkStringArray()
>
> >>> print(a.GetValue(0))
>
>
>
> I first thought that it should be handled by documentation and training,
> but it would be nicer if the wrappers could handle this.
>
>
>
> Would it be feasible to add bounds check to VTK array accessors in Python
> wrappers, so that in case of an out of bounds access, a Python exception
> would be raised instead of crashing the application?
>
> Andras
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20170804/b29b0754/attachment.html>
More information about the vtk-developers
mailing list