#ifndef HLTCA_GPUCODE
-template<typename T> inline void AssignNoAlignment( T *&dst, char *&mem, int count )
+inline void AssignNoAlignment( int &dst, int &size, int count )
{
// assign memory to the pointer dst
- dst = ( T* ) mem;
- mem = ( char * )( dst + count );
+ dst = size;
+ size = dst + count ;
}
void AliHLTTPCCASliceOutput::SetPointers(int nTracks, int nTrackClusters, const outputControlStruct* outputControl)
if (nTracks == -1) nTracks = fNTracks;
if (nTrackClusters == -1) nTrackClusters = fNTrackClusters;
- char *mem = fMemory;
+ int size = 0;
if (outputControl == NULL || outputControl->fDefaultOutput)
{
- AssignNoAlignment( fTracks, mem, nTracks );
- AssignNoAlignment( fClusterUnpackedYZ, mem, nTrackClusters );
- AssignNoAlignment( fClusterUnpackedX, mem, nTrackClusters );
- AssignNoAlignment( fClusterId, mem, nTrackClusters );
- AssignNoAlignment( fClusterRow, mem, nTrackClusters );
+ AssignNoAlignment( fTracksOffset, size, nTracks*sizeof(AliHLTTPCCASliceTrack) );
+ AssignNoAlignment( fClusterUnpackedYZOffset, size, nTrackClusters*sizeof(int) );
+ AssignNoAlignment( fClusterUnpackedXOffset, size, nTrackClusters*sizeof(UChar_t) );
+ AssignNoAlignment( fClusterIdOffset, size, nTrackClusters*sizeof(float2) );
+ AssignNoAlignment( fClusterRowOffset, size, nTrackClusters*sizeof(float) );
}
+ char *mem = fMemory + size;
+
if (outputControl == NULL || outputControl->fObsoleteOutput)
{
// memory for output tracks