From 58f121ef2e680697e10453add43bab9b771d153a Mon Sep 17 00:00:00 2001 From: Xisco Fauli Date: Wed, 29 May 2019 11:19:57 +0200 Subject: 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 Tested-by: Jenkins --- dbaccess/source/core/api/TableDeco.cxx | 2 +- dbaccess/source/core/inc/TableDeco.hxx | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'dbaccess') 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; - // + // mutable sal_Int32 m_nPrivileges; - // - rtl::Reference<::connectivity::sdbcx::OCollection> m_pColumns; + // + // 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; -- cgit