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

Reply via email to