[vtk-developers] Safer item access in Python wrapped VTK arrays

Berk Geveci berk.geveci at kitware.com
Fri Aug 4 15:30:03 EDT 2017


As much as I support the concept of range checking in the wrappers, this
hint will make things look very ugly and non-standard at a time where we
are trying to move towards more standard looking C++. Isn't there a way of
doing this without mangling the signatures?

On Fri, Aug 4, 2017 at 1:06 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> 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
>>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtk-developers
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20170804/d4f9cab7/attachment.html>


More information about the vtk-developers mailing list