BUG in 64bit vtkDataArrayTemplate
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
I am working on a very huge terrain dataset consisting of multiple tiles. I hit the 32bit limit of point numbers so that I recompiled VTK with the VTK_USE_64BITS_IDS flag set. Nevertheless, appending data still crashed. The reason was the usage of an "int" in vtkDataArrayTemplate.txx. Changing it to vtkIdType fixed this problem.
//---------------------------------------------------------------------------- // Allocate memory for this array. Delete old storage only if necessary. template <class T> int vtkDataArrayTemplate<T>::Allocate(vtkIdType sz, vtkIdType) { ... //========================================= int newSize = (sz > 0 ? sz : 1); //========================================= this->Array = (T*)malloc(newSize * sizeof(T)); if(!this->Array) { vtkErrorMacro("Unable to allocate " << newSize << " elements of size " << sizeof(T) << " bytes. "); return 0; } this->Size = newSize; }
return 1; } //----------------------------------------------------------------------------