[vtkusers] Segmentation fault

Goodwin Lawlor goodwin.lawlor.lists at gmail.com
Mon Apr 7 13:31:26 EDT 2014


Thanks for that link Shawn and setting me straight (I did day I could be
wrong ;-))

My logic was that if you had to do:

vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();

then initializing a smart pointer not created with the form on the RHS
above wouldn't work...

Goodwin


On Mon, Apr 7, 2014 at 6:17 PM, Shawn Waldon <swaldon at cs.unc.edu> wrote:

> Hi Goodwin,
>
> It shouldn't be causing the segfault.  That line will create a new smart
> pointer and set its internal pointer to the reader's output, incrementing
> the reference count.
> See
> http://www.vtk.org/Wiki/VTK/Tutorials/SmartPointers#Getting_an_Object_with_a_Smart_Pointerfor details.  If the reference increment is unnecessary, then it is still
> only a small performance gain and not a segfault causing bug.
>
> My guess for the segfault is what Bill said: the normals are in a
> vtkDoubleArray not a vtkFloatArray so SafeDownCast is returning NULL.
>
> HTH,
>
> Shawn
>
>
> On Mon, Apr 7, 2014 at 1:11 PM, Goodwin Lawlor <
> goodwin.lawlor.lists at gmail.com> wrote:
>
>> Hi Elena,
>>
>> I coud be wrong but I dont think this is correct:
>>
>>  vtkSmartPointer<vtkPolyData> polydata = reader->GetOutput();
>>
>>
>> reader->GetOutput() returns a regular pointer to a vtkPolydata not a
>> smart pointer.
>>
>> Try:
>>
>> vtkPolyData *polydata = reader->GetOutput();
>>
>> instead.
>>
>> hth
>>
>> Goodwin
>>
>>
>>
>>
>> On Mon, Apr 7, 2014 at 4:00 PM, elena bresciani <
>> elena.bresciani87 at gmail.com> wrote:
>>
>>> Hello everybody!
>>>
>>> I need your help with a segmentation fault error.
>>> Using gdb I understood where it is generated but I don't know how to
>>> modify the code to make it run.
>>>
>>> Here's the portion of the code that I'm talking about:
>>>
>>>
>>> *vtkSmartPointer<vtkPolyData> polydata = reader->GetOutput();*
>>> (the reader is a vtkXMLPolyDataReader)
>>>
>>>
>>>
>>> *vtkFloatArray *PointNormalArray = vtkFloatArray::SafeDownCast(
>>> polydata->GetPointData()->GetNormals() ) ; for(vtkIdType i = 0; i <
>>> PointNormalArray->GetNumberOfTuples(); i++) {....}*
>>>
>>> everytime I call GetNumberOfTuples I have this error so I think the
>>> problem is on PointNormalArray.
>>>
>>> Can somebody help me?
>>>
>>> Thanks in advance
>>>
>>> Elena
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>
>
> --
> Shawn Waldon
> Graduate Research Assistant
> Department of Computer Science
> University of North Carolina at Chapel Hill
> swaldon at cs.unc.edu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140407/9709a452/attachment.html>


More information about the vtkusers mailing list