summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2012-09-13 16:24:38 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-09-17 09:44:20 +0200
commit4c700dfc0b3909b11a0711c2d64c779fab19070b (patch)
tree26c74d3dd62229c434eb070bd6e6df7670583583
parent3d2a4ea716f0072a539d9810bf0f5d60167c99e1 (diff)
fdo#37529 clear DataColumns read-only information when we clear DataColumns
Change-Id: I6f3b4f1646df1244d97ae98f56ba054bc26e3314 (cherry picked from commit 522b4c65dcc90719288b4f7aa7eb565c15b64e86) Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r--dbaccess/source/core/api/RowSet.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index c14a4b040d78..dcb8d2fc2bcd 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -571,6 +571,8 @@ void ORowSet::freeResources( bool _bComplete )
// the columns must be disposed before the querycomposer is disposed because
// their owner can be the composer
TDataColumns().swap(m_aDataColumns);// clear and resize capacity
+ ::std::vector<bool>().swap(m_aReadOnlyDataColumns);
+
m_xColumns = NULL;
if ( m_pColumns )
m_pColumns->disposing();
@@ -1252,6 +1254,7 @@ void ORowSet::impl_setDataColumnsWriteable_throw()
void ORowSet::impl_restoreDataColumnsWriteable_throw()
{
+ assert(m_aDataColumns.size() == m_aReadOnlyDataColumns.size() || m_aReadOnlyDataColumns.size() == 0 );
TDataColumns::iterator aIter = m_aDataColumns.begin();
::std::vector<bool, std::allocator<bool> >::iterator aReadIter = m_aReadOnlyDataColumns.begin();
for(;aReadIter != m_aReadOnlyDataColumns.end();++aIter,++aReadIter)