dbaccess/source/ui/misc/DExport.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)
New commits: commit b92b1ca8c14979550ec962464ec8d782cdd69d82 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sun Jul 21 05:21:36 2024 +0200 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Sun Jul 21 07:13:34 2024 +0200 Refactor for clarity Change-Id: Ie15fe9d2542000132c9928099f515dca8d287d52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170737 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx index b60fe1bb2619..f8bdea3050f2 100644 --- a/dbaccess/source/ui/misc/DExport.cxx +++ b/dbaccess/source/ui/misc/DExport.cxx @@ -803,17 +803,17 @@ Reference< XPreparedStatement > ODatabaseExport::createPreparedStatement( const { return Reference< XPreparedStatement > (); } - std::vector<OUString> aInsertList(aDestColumnNames.getLength() + 1); - for(size_t j=0; j < aInsertList.size(); ++j) + + std::vector<OUString> aInsertList; + auto sortedColumns = _rvColumns; + std::sort(sortedColumns.begin(), sortedColumns.end()); + aInsertList.reserve(_rvColumns.size()); + for (const auto& [nSrc, nDest] : sortedColumns) { - ODatabaseExport::TPositions::const_iterator aFind = std::find_if(_rvColumns.begin(),_rvColumns.end(), - [j] (const ODatabaseExport::TPositions::value_type& tPos) - { return tPos.second == static_cast<sal_Int32>(j+1); }); - if ( _rvColumns.end() != aFind && aFind->second != COLUMN_POSITION_NOT_FOUND && aFind->first != COLUMN_POSITION_NOT_FOUND ) - { - OSL_ENSURE((aFind->first) < static_cast<sal_Int32>(aInsertList.size()),"aInsertList: Illegal index for vector"); - aInsertList[aFind->first] = ::dbtools::quoteName(aQuote, aDestColumnNames[j]); - } + if (nSrc == COLUMN_POSITION_NOT_FOUND || nDest == COLUMN_POSITION_NOT_FOUND) + continue; + assert(nDest > 0 && nDest <= aDestColumnNames.getLength()); + aInsertList.push_back(dbtools::quoteName(aQuote, aDestColumnNames[nDest - 1])); } // create the sql string