diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2019-05-29 11:19:57 +0200 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2019-05-29 13:05:06 +0200 |
commit | 58f121ef2e680697e10453add43bab9b771d153a (patch) | |
tree | 1a90dde260aeeb10c7177d452c21862d623aca61 /dbaccess | |
parent | 60f97b07695796368a36f846d5b596481675c22e (diff) |
tdf#114596 dbaccess: fix mysterious dataloss bug (part 2)
Same problem as in 96ae2a3300811897c24cccb20f8c2faf382483df
Regression from 497e40ad03c27837978551ba15491c3fb2a0bf53
Change-Id: I00e7bf3559e688e7fbc5429ace2b5c18221c9890
Reviewed-on: https://gerrit.libreoffice.org/73146
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Tested-by: Jenkins
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/source/core/api/TableDeco.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/core/inc/TableDeco.hxx | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/dbaccess/source/core/api/TableDeco.cxx b/dbaccess/source/core/api/TableDeco.cxx index 1c229802b43d..6b632e135e12 100644 --- a/dbaccess/source/core/api/TableDeco.cxx +++ b/dbaccess/source/core/api/TableDeco.cxx @@ -553,7 +553,7 @@ void ODBTableDecorator::refreshColumns() OContainerMediator* pMediator = new OContainerMediator( pCol, m_xColumnDefinitions ); m_xColumnMediator = pMediator; pCol->setMediator( pMediator ); - m_pColumns = pCol; + m_pColumns.reset(pCol); } else m_pColumns->reFill(aVector); diff --git a/dbaccess/source/core/inc/TableDeco.hxx b/dbaccess/source/core/inc/TableDeco.hxx index 5a964e79401d..52d6fb05e0bb 100644 --- a/dbaccess/source/core/inc/TableDeco.hxx +++ b/dbaccess/source/core/inc/TableDeco.hxx @@ -71,10 +71,11 @@ namespace dbaccess css::uno::Reference< css::sdbc::XDatabaseMetaData > m_xMetaData; css::uno::Reference< css::util::XNumberFormatsSupplier > m_xNumberFormats; - // <properties> + // <properties> mutable sal_Int32 m_nPrivileges; - // </properties> - rtl::Reference<::connectivity::sdbcx::OCollection> m_pColumns; + // </properties> + // note: this thing uses the ref-count of "this", see OCollection::acquire()! + std::unique_ptr<::connectivity::sdbcx::OCollection> m_pColumns; // IColumnFactory virtual OColumn* createColumn(const OUString& _rName) const override; |