Fix memory leak.

This commit is contained in:
sunwen
2023-06-14 17:53:39 +08:00
parent 1d0b53126a
commit 48ab37fe51
2 changed files with 3 additions and 3 deletions

View File

@@ -61,7 +61,6 @@ AscanBlock Recon::getAscanBlock(Parser* aParser, const Aurora::Matrix& aMp, cons
result.rlBlock = Matrix::fromRawData(rlBlockData, 1, numScans);
result.rnBlock = Matrix::fromRawData(rnBlockData, 1, numScans);
result.gainBlock = Matrix::fromRawData(gainBlockData, 1, numScans);
OneTasAScanData oenTasData = aParser->getOneTasAscanDataOfMotorPosition(1);
auto tasIndices = aParser->getMetaData().getTasIndices();
auto receiverIndices = aParser->getMetaData().getReceiverIndices();
auto tasElementMapper = findTasAndElementIndex(tasIndices, receiverIndices, aRl, aRn);
@@ -70,7 +69,7 @@ AscanBlock Recon::getAscanBlock(Parser* aParser, const Aurora::Matrix& aMp, cons
{
for(int slIndex=0; slIndex<aSl.getDataSize();++slIndex)
{
OneTasAScanData oenTasData = aParser->getOneTasAscanDataOfMotorPosition(aSl[slIndex]);
OneTasAScanData oneTasData = aParser->getOneTasAscanDataOfMotorPosition(aSl[slIndex]);
for(int snIndex=0; snIndex<aSn.getDataSize();++snIndex)
{
@@ -85,7 +84,7 @@ AscanBlock Recon::getAscanBlock(Parser* aParser, const Aurora::Matrix& aMp, cons
slIndex * aRl.getDataSize() * aRn.getDataSize() * aSn.getDataSize() +
mpIndex * aRl.getDataSize() * aRn.getDataSize() * aSn.getDataSize() * aSl.getDataSize();
MotorPosition mp = aMp[mpIndex] == 1 ? MotorPosition::MotorPosition1 : MotorPosition::MotorPosition2;
AScanData ascan = aParser->searchAscanDataFromOneTasAscanDataOfMP(oenTasData, ElementIndex(GeometryIndex(aSn[snIndex])), TasElementIndex(tasIndices.get()[tasElementMapper[mapperIndex]], ElementIndex(GeometryIndex(receiverIndices.get()[tasElementMapper[mapperIndex]]))), mp);
AScanData ascan = aParser->searchAscanDataFromOneTasAscanDataOfMP(oneTasData, ElementIndex(GeometryIndex(aSn[snIndex])), TasElementIndex(tasIndices.get()[tasElementMapper[mapperIndex]], ElementIndex(GeometryIndex(receiverIndices.get()[tasElementMapper[mapperIndex]]))), mp);
double* startPointer = ascanBlockData + numScansIndex * ascan.getAscanDataLength();
std::copy(ascan.get() ,ascan.get() + ascan.getAscanDataLength(), startPointer);
//ascanBlockData += ascan.getAscanDataLength();

View File

@@ -12,6 +12,7 @@ Aurora::Matrix Recon::preprocessAscanBlock(const Aurora::Matrix& aAscans, const
{
result = Aurora::convertfp16tofloat(ascanData, aAscans.getDimSize(0), aAscans.getDimSize(1));
}
delete [] ascanData;
//暂不考虑实现二代逻辑
// if isfield(measInfo, 'Bandpassundersampling') && (measInfo.Bandpassundersampling == 1)