Related: tdf#134925 use std::vector

Change-Id: I7046814570a3ac98c92dc3d08e8dd05ed4d3483c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100071
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sw/source/uibase/inc/swtablerep.hxx b/sw/source/uibase/inc/swtablerep.hxx
index 82f9fb9..e57a4e6 100644
--- a/sw/source/uibase/inc/swtablerep.hxx
+++ b/sw/source/uibase/inc/swtablerep.hxx
@@ -24,10 +24,16 @@
#include <swtypes.hxx>

class SwTabCols;
struct TColumn;

struct TColumn
{
    SwTwips nWidth;
    bool    bVisible;
};

class SW_DLLPUBLIC SwTableRep
{
    std::unique_ptr<TColumn[]> m_pTColumns;
    std::vector<TColumn> m_aTColumns;

    SwTwips     m_nTableWidth;
    SwTwips     m_nSpace;
@@ -77,7 +83,7 @@ public:
    SwTwips     GetSpace() const                { return m_nSpace;}
    void        SetSpace(SwTwips nSet)          {m_nSpace = nSet;}

    TColumn*    GetColumns() const              {return m_pTColumns.get();}
    TColumn*    GetColumns()                    {return m_aTColumns.data();}
};
#endif

diff --git a/sw/source/uibase/table/swtablerep.cxx b/sw/source/uibase/table/swtablerep.cxx
index 97e8522..a7518c1 100644
--- a/sw/source/uibase/table/swtablerep.cxx
+++ b/sw/source/uibase/table/swtablerep.cxx
@@ -36,20 +36,20 @@ SwTableRep::SwTableRep( const SwTabCols& rTabCol )
    m_bColsChanged(false)
{
    m_nAllCols = m_nColCount = rTabCol.Count();
    m_pTColumns.reset( new TColumn[ m_nColCount + 1 ] );
    m_aTColumns.resize(m_nColCount + 1);
    SwTwips nStart = 0,
            nEnd;
    for( sal_uInt16 i = 0; i < m_nAllCols; ++i )
    {
        nEnd  = rTabCol[ i ] - rTabCol.GetLeft();
        m_pTColumns[ i ].nWidth = nEnd - nStart;
        m_pTColumns[ i ].bVisible = !rTabCol.IsHidden(i);
        if(!m_pTColumns[ i ].bVisible)
        m_aTColumns[ i ].nWidth = nEnd - nStart;
        m_aTColumns[ i ].bVisible = !rTabCol.IsHidden(i);
        if(!m_aTColumns[ i ].bVisible)
            m_nColCount --;
        nStart = nEnd;
    }
    m_pTColumns[ m_nAllCols ].nWidth = rTabCol.GetRight() - rTabCol.GetLeft() - nStart;
    m_pTColumns[ m_nAllCols ].bVisible = true;
    m_aTColumns[ m_nAllCols ].nWidth = rTabCol.GetRight() - rTabCol.GetLeft() - nStart;
    m_aTColumns[ m_nAllCols ].bVisible = true;
    m_nColCount++;
    m_nAllCols++;
}
@@ -66,7 +66,7 @@ bool SwTableRep::FillTabCols( SwTabCols& rTabCols ) const
    bool bSingleLine = false;

    for ( size_t i = 0; i < rTabCols.Count(); ++i )
        if(!m_pTColumns[i].bVisible)
        if(!m_aTColumns[i].bVisible)
        {
            bSingleLine = true;
            break;
@@ -109,7 +109,7 @@ bool SwTableRep::FillTabCols( SwTabCols& rTabCols ) const
            }
            while((bFirst || !bOld ) && nNewPos < m_nAllCols )
            {
                nNew += m_pTColumns[nNewPos].nWidth;
                nNew += m_aTColumns[nNewPos].nWidth;
                nNewPos++;
                if(pOldTColumns[nNewPos - 1].bVisible)
                    break;
@@ -127,10 +127,10 @@ bool SwTableRep::FillTabCols( SwTabCols& rTabCols ) const
    {
        for ( sal_uInt16 i = 0; i < m_nAllCols - 1; ++i )
        {
            nPos += m_pTColumns[i].nWidth;
            nPos += m_aTColumns[i].nWidth;
            rTabCols[i] = nPos + rTabCols.GetLeft();
            rTabCols.SetHidden( i, !m_pTColumns[i].bVisible );
            rTabCols.SetRight(nLeft + m_pTColumns[m_nAllCols - 1].nWidth + nPos);
            rTabCols.SetHidden( i, !m_aTColumns[i].bVisible );
            rTabCols.SetRight(nLeft + m_aTColumns[m_nAllCols - 1].nWidth + nPos);
        }
    }

diff --git a/sw/source/uibase/table/tablepg.hxx b/sw/source/uibase/table/tablepg.hxx
index f2a6311..1e4e355 100644
--- a/sw/source/uibase/table/tablepg.hxx
+++ b/sw/source/uibase/table/tablepg.hxx
@@ -27,12 +27,6 @@ class SwWrtShell;
class SwTableRep;
struct ImplSVEvent;

struct TColumn
{
    SwTwips nWidth;
    bool    bVisible;
};

class SwFormatTablePage : public SfxTabPage
{
    SwTableRep*     pTableData;