summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2019-05-29 11:19:57 +0200
committerXisco FaulĂ­ <xiscofauli@libreoffice.org>2019-05-29 13:05:06 +0200
commit58f121ef2e680697e10453add43bab9b771d153a (patch)
tree1a90dde260aeeb10c7177d452c21862d623aca61
parent60f97b07695796368a36f846d5b596481675c22e (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
-rw-r--r--dbaccess/source/core/api/TableDeco.cxx2
-rw-r--r--dbaccess/source/core/inc/TableDeco.hxx7
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;