From 0ad4ebd1b1ea5f5a16295017dbd91785f5982f74 Mon Sep 17 00:00:00 2001 From: richterm Date: Thu, 14 Aug 2008 15:12:38 +0000 Subject: [PATCH] AliHLTTask: improve consistency check for generated output data (allow ptr be set to the output buffer); AliHLTDataBuffer: allow data block descriptors of zero length buffers --- HLT/BASE/AliHLTDataBuffer.cxx | 3 ++- HLT/BASE/AliHLTTask.cxx | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/HLT/BASE/AliHLTDataBuffer.cxx b/HLT/BASE/AliHLTDataBuffer.cxx index 0e2d58b20bc..834c0522e99 100644 --- a/HLT/BASE/AliHLTDataBuffer.cxx +++ b/HLT/BASE/AliHLTDataBuffer.cxx @@ -369,7 +369,8 @@ int AliHLTDataBuffer::SetSegments(AliHLTUInt8_t* pTgt, AliHLTComponentBlockData* if (arrayBlockData[i].fPtr==NULL || arrayBlockData[i].fPtr==*fpBuffer) { arrayBlockData[i].fPtr=*fpBuffer; - if (arrayBlockData[i].fOffset+arrayBlockData[i].fSize<=fpBuffer->GetUsedSize()) { + if ((arrayBlockData[i].fOffset+arrayBlockData[i].fSize<=fpBuffer->GetUsedSize()) || + ((arrayBlockData[i].fOffset==~(AliHLTUInt32_t)0) && arrayBlockData[i].fSize==0)) { segment.fSegmentOffset=arrayBlockData[i].fOffset; segment.fPtr=(AliHLTUInt8_t*)arrayBlockData[i].fPtr; segment.fSegmentSize=arrayBlockData[i].fSize; diff --git a/HLT/BASE/AliHLTTask.cxx b/HLT/BASE/AliHLTTask.cxx index eaae250b6b2..da8ffbdc448 100644 --- a/HLT/BASE/AliHLTTask.cxx +++ b/HLT/BASE/AliHLTTask.cxx @@ -588,7 +588,8 @@ int AliHLTTask::ProcessTask(Int_t eventNo, AliHLTUInt32_t eventType) AliHLTComponentBlockDataList segments; for (AliHLTUInt32_t oblock=0; oblock