[vtkusers] BUG in 64bit vtkDataArrayTemplate

Andreas M. Gerndt andreas at louisiana.edu
Fri Jul 13 13:44:09 EDT 2007


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;
}
//----------------------------------------------------------------------------

I guess this is a BUG, isn't it???

Andreas

-- 

--------------------------------------------
Andreas M. Gerndt
Louisiana Immersive Technologies Enterprise
University of Louisiana at Lafayette (ULL)
537 Cajundome Boulevard
Lafayette, LA 70506, USA
Office: (337) 482-9609
Fax:    (337) 735-1346
mailto: andreas at louisiana.edu
http://www.lite3d.com
http://www.ull.edu
--------------------------------------------
. 



More information about the vtkusers mailing list