Fix memory leak.
This commit is contained in:
@@ -61,7 +61,6 @@ AscanBlock Recon::getAscanBlock(Parser* aParser, const Aurora::Matrix& aMp, cons
|
|||||||
result.rlBlock = Matrix::fromRawData(rlBlockData, 1, numScans);
|
result.rlBlock = Matrix::fromRawData(rlBlockData, 1, numScans);
|
||||||
result.rnBlock = Matrix::fromRawData(rnBlockData, 1, numScans);
|
result.rnBlock = Matrix::fromRawData(rnBlockData, 1, numScans);
|
||||||
result.gainBlock = Matrix::fromRawData(gainBlockData, 1, numScans);
|
result.gainBlock = Matrix::fromRawData(gainBlockData, 1, numScans);
|
||||||
OneTasAScanData oenTasData = aParser->getOneTasAscanDataOfMotorPosition(1);
|
|
||||||
auto tasIndices = aParser->getMetaData().getTasIndices();
|
auto tasIndices = aParser->getMetaData().getTasIndices();
|
||||||
auto receiverIndices = aParser->getMetaData().getReceiverIndices();
|
auto receiverIndices = aParser->getMetaData().getReceiverIndices();
|
||||||
auto tasElementMapper = findTasAndElementIndex(tasIndices, receiverIndices, aRl, aRn);
|
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)
|
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)
|
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() +
|
slIndex * aRl.getDataSize() * aRn.getDataSize() * aSn.getDataSize() +
|
||||||
mpIndex * aRl.getDataSize() * aRn.getDataSize() * aSn.getDataSize() * aSl.getDataSize();
|
mpIndex * aRl.getDataSize() * aRn.getDataSize() * aSn.getDataSize() * aSl.getDataSize();
|
||||||
MotorPosition mp = aMp[mpIndex] == 1 ? MotorPosition::MotorPosition1 : MotorPosition::MotorPosition2;
|
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();
|
double* startPointer = ascanBlockData + numScansIndex * ascan.getAscanDataLength();
|
||||||
std::copy(ascan.get() ,ascan.get() + ascan.getAscanDataLength(), startPointer);
|
std::copy(ascan.get() ,ascan.get() + ascan.getAscanDataLength(), startPointer);
|
||||||
//ascanBlockData += ascan.getAscanDataLength();
|
//ascanBlockData += ascan.getAscanDataLength();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Aurora::Matrix Recon::preprocessAscanBlock(const Aurora::Matrix& aAscans, const
|
|||||||
{
|
{
|
||||||
result = Aurora::convertfp16tofloat(ascanData, aAscans.getDimSize(0), aAscans.getDimSize(1));
|
result = Aurora::convertfp16tofloat(ascanData, aAscans.getDimSize(0), aAscans.getDimSize(1));
|
||||||
}
|
}
|
||||||
|
delete [] ascanData;
|
||||||
|
|
||||||
//暂不考虑实现二代逻辑
|
//暂不考虑实现二代逻辑
|
||||||
// if isfield(measInfo, 'Bandpassundersampling') && (measInfo.Bandpassundersampling == 1)
|
// if isfield(measInfo, 'Bandpassundersampling') && (measInfo.Bandpassundersampling == 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user