Commit ce731768 authored by Eisenhauer, Greg's avatar Eisenhauer, Greg Committed by Bolea Sanchez, Vicente Adolfo
Browse files

Merge pull request #3684 from eisenhauer/FixLeak

Fix memory leak when there are Joined Arrays in streaming mode

(cherry picked from commit 68b282cb)
parent af34a404
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -707,7 +707,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
@@ -725,7 +725,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())
        {
@@ -2001,7 +2001,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
@@ -250,6 +250,7 @@ private:
    /* We assume operators are not thread-safe, call Decompress() one at a time
     */
    std::mutex mutexDecompress;
    std::vector<void *> *m_FreeableJDOA = nullptr;
};

} // end namespace format