[vtkusers] missing check in vtkPolyData::ShallowCopy
xabivtk
xabivtk at gmail.com
Wed Jul 3 05:04:28 EDT 2013
Hi,
I have a crash when calling ShallowCopy on a vtkPolyData when the polydata
passed as argument is the one that calls the method :
data->ShallowCopy(data)
no question that this call is useless...
but looking into the implementation, there is a comment that says : "I do
not know if this is correct but." for the code that deals with the cells and
links arrays, and this is the place where the crash occurs:
if (this->Cells)
{
this->Cells->UnRegister(this);
}
this->Cells = polyData->Cells;
if (this->Cells)
{
this->Cells->Register(this);
}
the call to this->Cells->UnRegister(this) makes the polyData->Cells to be
destroyed, so this->Cells->Register(this) will crash.
I think a check should be added in the same way as in SetLines, SetPolys,
etc... to verify that the input pointer is not the same as the local one:
if(polyData->Cells != this->Cells)
{
if (this->Cells)
{
this->Cells->UnRegister(this);
}
this->Cells = polyData->Cells;
if (this->Cells)
{
this->Cells->Register(this);
}
...
}
Any comments on that?
--
View this message in context: http://vtk.1045678.n5.nabble.com/missing-check-in-vtkPolyData-ShallowCopy-tp5721741.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list