connectivity/source/drivers/component/CDatabaseMetaData.cxx | 24 ++++----- connectivity/source/drivers/dbase/DDatabaseMetaData.cxx | 32 ++++++------ connectivity/source/drivers/file/FDatabaseMetaData.cxx | 11 +--- 3 files changed, 33 insertions(+), 34 deletions(-)
New commits: commit 66b0bc55854ba13b92b6c39b95f3f2d4ef76bf20 Author: Noel Grandin <[email protected]> AuthorDate: Fri Mar 10 10:35:33 2023 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Fri Mar 10 09:50:16 2023 +0000 simplify initialisation in *DatabaseMetaData Change-Id: I1d7e107e22a98489e4d1013e14bb780e20d87c40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148594 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/connectivity/source/drivers/component/CDatabaseMetaData.cxx b/connectivity/source/drivers/component/CDatabaseMetaData.cxx index b8bbae3d7499..bbd921bca3f6 100644 --- a/connectivity/source/drivers/component/CDatabaseMetaData.cxx +++ b/connectivity/source/drivers/component/CDatabaseMetaData.cxx @@ -46,14 +46,12 @@ OComponentDatabaseMetaData::~OComponentDatabaseMetaData() Reference< XResultSet > OComponentDatabaseMetaData::impl_getTypeInfo_throw( ) { - ::osl::MutexGuard aGuard( m_aMutex ); - rtl::Reference<ODatabaseMetaDataResultSet> pResult = new ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); - static ODatabaseMetaDataResultSet::ORows aRows; - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = []() { - aRows.reserve(6); + ODatabaseMetaDataResultSet::ORows aTmp; + aTmp.reserve(6); ODatabaseMetaDataResultSet::ORow aRow { ODatabaseMetaDataResultSet::getEmptyValue(), @@ -77,43 +75,45 @@ Reference< XResultSet > OComponentDatabaseMetaData::impl_getTypeInfo_throw( ) new ORowSetValueDecorator(sal_Int32(10)) }; - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL")); aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL); aRow[3] = ODatabaseMetaDataResultSet::get0Value(); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("BOOL")); aRow[2] = new ORowSetValueDecorator(DataType::BIT); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[15] = new ORowSetValueDecorator(sal_Int32(15)); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DATE")); aRow[2] = new ORowSetValueDecorator(DataType::DATE); aRow[3] = ODatabaseMetaDataResultSet::get0Value(); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIME")); aRow[2] = new ORowSetValueDecorator(DataType::TIME); aRow[3] = ODatabaseMetaDataResultSet::get0Value(); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP")); aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP); aRow[3] = ODatabaseMetaDataResultSet::get0Value(); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRows.push_back(aRow); - } + aTmp.push_back(aRow); + + return aTmp; + }(); pResult->setRows(std::move(aRows)); return pResult; diff --git a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx index 26c2ad880c04..91a9c66fbdcb 100644 --- a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx +++ b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx @@ -54,14 +54,12 @@ ODbaseDatabaseMetaData::~ODbaseDatabaseMetaData() Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( ) { - ::osl::MutexGuard aGuard( m_aMutex ); - rtl::Reference<::connectivity::ODatabaseMetaDataResultSet> pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); - static ODatabaseMetaDataResultSet::ORows aRows; - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = []() { - aRows.reserve(10); + ODatabaseMetaDataResultSet::ORows aTmp; + aTmp.reserve(10); ODatabaseMetaDataResultSet::ORow aRow { ODatabaseMetaDataResultSet::getEmptyValue(), @@ -85,20 +83,20 @@ Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( ) new ORowSetValueDecorator(sal_Int32(10)) }; - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("LONGVARCHAR")); aRow[2] = new ORowSetValueDecorator(DataType::LONGVARCHAR); aRow[3] = new ORowSetValueDecorator(sal_Int32(2147483647)); aRow[6] = new ORowSetValueDecorator(); aRow[13] = new ORowSetValueDecorator(OUString("M")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DATE")); aRow[2] = new ORowSetValueDecorator(DataType::DATE); aRow[3] = new ORowSetValueDecorator(sal_Int32(10)); aRow[13] = new ORowSetValueDecorator(OUString("D")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("BOOLEAN")); aRow[2] = new ORowSetValueDecorator(DataType::BIT); @@ -108,44 +106,46 @@ Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( ) aRow[6] = new ORowSetValueDecorator(OUString()); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); aRow[13] = new ORowSetValueDecorator(OUString("L")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DOUBLE")); aRow[2] = new ORowSetValueDecorator(DataType::DOUBLE); aRow[3] = new ORowSetValueDecorator(sal_Int32(8)); aRow[13] = new ORowSetValueDecorator(OUString("B")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[11] = new ORowSetValueDecorator(ORowSetValue(true)); aRow[13] = new ORowSetValueDecorator(OUString("Y")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP")); aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP); aRow[11] = new ORowSetValueDecorator(ORowSetValue(false)); aRow[13] = new ORowSetValueDecorator(OUString("T")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("INTEGER")); aRow[2] = new ORowSetValueDecorator(DataType::INTEGER); aRow[3] = new ORowSetValueDecorator(sal_Int32(10)); aRow[13] = new ORowSetValueDecorator(OUString("I")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL")); aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[6] = new ORowSetValueDecorator(OUString("length,scale")); aRow[13] = new ORowSetValueDecorator(OUString("F")); - aRows.push_back(aRow); + aTmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("NUMERIC")); aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL); aRow[3] = new ORowSetValueDecorator(sal_Int32(16)); aRow[13] = new ORowSetValueDecorator(OUString("N")); aRow[15] = new ORowSetValueDecorator(sal_Int32(16)); - aRows.push_back(aRow); - } + aTmp.push_back(aRow); + + return aTmp; + }(); pResult->setRows(std::move(aRows)); return pResult; diff --git a/connectivity/source/drivers/file/FDatabaseMetaData.cxx b/connectivity/source/drivers/file/FDatabaseMetaData.cxx index 95d19d33b1eb..7b720f91000a 100644 --- a/connectivity/source/drivers/file/FDatabaseMetaData.cxx +++ b/connectivity/source/drivers/file/FDatabaseMetaData.cxx @@ -618,14 +618,13 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins( ) Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) { - ::osl::MutexGuard aGuard( m_aMutex ); - rtl::Reference<ODatabaseMetaDataResultSet> pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTableTypes ); - static ODatabaseMetaDataResultSet::ORows aRows; - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = []() { - aRows.push_back( { ODatabaseMetaDataResultSet::getEmptyValue(), new ORowSetValueDecorator(OUString("TABLE")) } ); - } + ODatabaseMetaDataResultSet::ORows aTmp; + aTmp.push_back( { ODatabaseMetaDataResultSet::getEmptyValue(), new ORowSetValueDecorator(OUString("TABLE")) } ); + return aTmp; + }(); pResult->setRows(std::move(aRows)); return pResult; }
