Unverified Commit 68b282cb authored by Eisenhauer, Greg's avatar Eisenhauer, Greg Committed by GitHub
Browse files

Merge pull request #3684 from eisenhauer/FixLeak

Fix memory leak when there are Joined Arrays in streaming mode
parents 1b99c8c4 6917bf9e
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -708,7 +708,7 @@ void BP5Deserializer::InstallMetaData(void *MetadataBlock, size_t BlockLen,
            m_JoinedDimenOffsetArrays = new std::vector<void *>();
            m_JoinedDimenOffsetArrays->resize(writerCohortSize);
            JoinedDimArray[Step] = m_JoinedDimenOffsetArrays;
            m_FreeableMBA = nullptr;
            m_FreeableJDOA = nullptr;
        }
    }
    else
@@ -726,7 +726,7 @@ void BP5Deserializer::InstallMetaData(void *MetadataBlock, size_t BlockLen,
        if (!m_JoinedDimenOffsetArrays)
        {
            m_JoinedDimenOffsetArrays = new std::vector<void *>();
            m_FreeableMBA = m_JoinedDimenOffsetArrays;
            m_FreeableJDOA = m_JoinedDimenOffsetArrays;
        }
        if (writerCohortSize > m_JoinedDimenOffsetArrays->size())
        {
@@ -2003,7 +2003,13 @@ BP5Deserializer::~BP5Deserializer()
        delete VarRec.second;
    }
    if (m_FreeableMBA)
    {
        delete m_FreeableMBA;
    }
    if (m_FreeableJDOA)
    {
        delete m_FreeableJDOA;
    }
    for (auto &step : MetadataBaseArray)
    {
        delete step;
+1 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ private:
    std::vector<void *> *m_FreeableMBA = nullptr;

    std::vector<void *> *m_JoinedDimenOffsetArrays = nullptr;
    std::vector<void *> *m_FreeableJDOA = nullptr;

    // for random access mode, for each timestep, for each writerrank, what
    // metameta info applies to the metadata