diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-11-21 11:46:43 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-11-21 12:28:23 +0100 |
commit | 48314f25241e014a634dd5371543b90137ffd2bc (patch) | |
tree | c55d6ef485fee3941bc1d3becb106d0dd77e7f2f /connectivity | |
parent | e41667762bfff43f95d1ee71b2d67903e4fdab4e (diff) |
improve function-local statics in basic..cui
Change-Id: If737e8478f6f1c8fffb060ce132d80e0f07ef8ee
Reviewed-on: https://gerrit.libreoffice.org/63701
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'connectivity')
10 files changed, 78 insertions, 82 deletions
diff --git a/connectivity/source/drivers/evoab2/EApi.cxx b/connectivity/source/drivers/evoab2/EApi.cxx index 1830cae593af..41bc62c9ab20 100644 --- a/connectivity/source/drivers/evoab2/EApi.cxx +++ b/connectivity/source/drivers/evoab2/EApi.cxx @@ -173,9 +173,7 @@ bool EApiInit() ESourceRegistry *get_e_source_registry() { - static ESourceRegistry *theInstance; - if (!theInstance) - theInstance = e_source_registry_new_sync(nullptr, nullptr); + static ESourceRegistry *theInstance = e_source_registry_new_sync(nullptr, nullptr); return theInstance; } diff --git a/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx b/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx index ff48493e1f20..004b46245b4d 100644 --- a/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx +++ b/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx @@ -1017,10 +1017,9 @@ Reference< XResultSet > OEvoabDatabaseMetaData::impl_getTypeInfo_throw( ) ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo); Reference< XResultSet > xResultSet = pResultSet; - static ODatabaseMetaDataResultSet::ORows aRows; - - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = []() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow; aRow.reserve(19); aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); @@ -1044,13 +1043,14 @@ Reference< XResultSet > OEvoabDatabaseMetaData::impl_getTypeInfo_throw( ) aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); aRow.push_back(new ORowSetValueDecorator(sal_Int32(10))); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("VARCHAR")); aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR); aRow[3] = new ORowSetValueDecorator(sal_Int32(65535)); - aRows.push_back(aRow); - } + tmp.push_back(aRow); + return tmp; + }(); pResultSet->setRows(aRows); return xResultSet; } diff --git a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx index 9ef2a59f6e61..f9d5c282a565 100644 --- a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx @@ -805,10 +805,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo); uno::Reference< XResultSet > xResultSet = pResultSet; - static ODatabaseMetaDataResultSet::ORows aResults; - - if(aResults.empty()) + static ODatabaseMetaDataResultSet::ORows aResults = [&]() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow(19); // Common data @@ -838,7 +837,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Varchar aRow[1] = new ORowSetValueDecorator(OUString("VARCHAR")); @@ -850,7 +849,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Binary (CHAR) // It is distinguished from Text type by its character set @@ -862,7 +861,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() sal_Int16(ColumnSearch::NONE)); // Searchable aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Varbinary (VARCHAR) aRow[1] = new ORowSetValueDecorator(OUString("VARCHAR")); @@ -882,12 +881,12 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Longvarbinary (SQL_BLOB) // Distinguished from simple blob with a user-defined subtype. aRow[2] = new ORowSetValueDecorator(DataType::LONGVARBINARY); - aResults.push_back(aRow); + tmp.push_back(aRow); // Integer Types common { @@ -902,17 +901,17 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[1] = new ORowSetValueDecorator(OUString("SMALLINT")); aRow[2] = new ORowSetValueDecorator(DataType::SMALLINT); aRow[3] = new ORowSetValueDecorator(sal_Int16(5)); // Prevision - aResults.push_back(aRow); + tmp.push_back(aRow); // Integer (SQL_LONG) aRow[1] = new ORowSetValueDecorator(OUString("INTEGER")); aRow[2] = new ORowSetValueDecorator(DataType::INTEGER); aRow[3] = new ORowSetValueDecorator(sal_Int16(10)); // Precision - aResults.push_back(aRow); + tmp.push_back(aRow); // Bigint (SQL_INT64) aRow[1] = new ORowSetValueDecorator(OUString("BIGINT")); aRow[2] = new ORowSetValueDecorator(DataType::BIGINT); aRow[3] = new ORowSetValueDecorator(sal_Int16(20)); // Precision - aResults.push_back(aRow); + tmp.push_back(aRow); // Decimal Types common { @@ -928,14 +927,14 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[3] = new ORowSetValueDecorator(sal_Int16(15)); // Precision aRow[14] = new ORowSetValueDecorator(sal_Int16(1)); // Minimum scale aRow[15] = new ORowSetValueDecorator(sal_Int16(15)); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Decimal aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL")); aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL); aRow[3] = new ORowSetValueDecorator(sal_Int16(15)); // Precision aRow[14] = new ORowSetValueDecorator(sal_Int16(1)); // Minimum scale aRow[15] = new ORowSetValueDecorator(sal_Int16(15)); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); aRow[6] = new ORowSetValueDecorator(); // Create Params // Float (SQL_FLOAT) @@ -944,14 +943,14 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[3] = new ORowSetValueDecorator(sal_Int16(7)); // Precision aRow[14] = new ORowSetValueDecorator(sal_Int16(1)); // Minimum scale aRow[15] = new ORowSetValueDecorator(sal_Int16(7)); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // Double (SQL_DOUBLE) aRow[1] = new ORowSetValueDecorator(OUString("DOUBLE PRECISION")); aRow[2] = new ORowSetValueDecorator(DataType::DOUBLE); aRow[3] = new ORowSetValueDecorator(sal_Int16(15)); // Precision aRow[14] = new ORowSetValueDecorator(sal_Int16(1)); // Minimum scale aRow[15] = new ORowSetValueDecorator(sal_Int16(15)); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // TODO: no idea whether D_FLOAT corresponds to an sql type @@ -965,7 +964,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // SQL_TYPE_TIME aRow[1] = new ORowSetValueDecorator(OUString("TIME")); @@ -989,7 +988,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // SQL_BLOB aRow[1] = new ORowSetValueDecorator(OUString("BLOB")); @@ -1001,7 +1000,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); + tmp.push_back(aRow); // SQL_BOOLEAN aRow[1] = new ORowSetValueDecorator(OUString("BOOLEAN")); @@ -1013,9 +1012,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() aRow[12] = new ORowSetValueDecorator(false); // Autoincrement aRow[14] = ODatabaseMetaDataResultSet::get0Value(); // Minimum scale aRow[15] = ODatabaseMetaDataResultSet::get0Value(); // Max scale - aResults.push_back(aRow); - - } + tmp.push_back(aRow); + return tmp; + }(); pResultSet->setRows(aResults); return xResultSet; } diff --git a/connectivity/source/drivers/flat/EDatabaseMetaData.cxx b/connectivity/source/drivers/flat/EDatabaseMetaData.cxx index a78b7c91575d..ad8982eb21bc 100644 --- a/connectivity/source/drivers/flat/EDatabaseMetaData.cxx +++ b/connectivity/source/drivers/flat/EDatabaseMetaData.cxx @@ -55,9 +55,9 @@ Reference< XResultSet > OFlatDatabaseMetaData::impl_getTypeInfo_throw( ) ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); Reference< XResultSet > xRef = pResult; - static ODatabaseMetaDataResultSet::ORows aRows; - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = [&]() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow; aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); @@ -80,13 +80,13 @@ Reference< XResultSet > OFlatDatabaseMetaData::impl_getTypeInfo_throw( ) aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); aRow.push_back(new ORowSetValueDecorator(sal_Int32(10))); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("VARCHAR")); aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("LONGVARCHAR")); @@ -94,53 +94,55 @@ Reference< XResultSet > OFlatDatabaseMetaData::impl_getTypeInfo_throw( ) aRow[3] = new ORowSetValueDecorator(sal_Int32(65535)); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DATE")); aRow[2] = new ORowSetValueDecorator(DataType::DATE); aRow[3] = new ORowSetValueDecorator(sal_Int32(10)); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIME")); aRow[2] = new ORowSetValueDecorator(DataType::TIME); aRow[3] = new ORowSetValueDecorator(sal_Int32(8)); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP")); aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP); aRow[3] = new ORowSetValueDecorator(sal_Int32(19)); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("BOOL")); aRow[2] = new ORowSetValueDecorator(DataType::BIT); aRow[3] = ODatabaseMetaDataResultSet::get1Value(); aRow[9] = ODatabaseMetaDataResultSet::getBasicValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL")); aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[15] = new ORowSetValueDecorator(sal_Int32(15)); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("DOUBLE")); aRow[2] = new ORowSetValueDecorator(DataType::DOUBLE); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("NUMERIC")); aRow[2] = new ORowSetValueDecorator(DataType::NUMERIC); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[15] = new ORowSetValueDecorator(sal_Int32(20)); - aRows.push_back(aRow); - } + tmp.push_back(aRow); + + return tmp; + }(); pResult->setRows(aRows); return xRef; diff --git a/connectivity/source/drivers/hsqldb/HDriver.cxx b/connectivity/source/drivers/hsqldb/HDriver.cxx index 2db53def866a..be2d1040c8dc 100644 --- a/connectivity/source/drivers/hsqldb/HDriver.cxx +++ b/connectivity/source/drivers/hsqldb/HDriver.cxx @@ -353,14 +353,14 @@ namespace connectivity xComp->addEventListener(this); // we want to close all connections when the office shuts down - static Reference< XTerminateListener> s_xTerminateListener; - if( !s_xTerminateListener.is() ) + static Reference< XTerminateListener> s_xTerminateListener = [&]() { Reference< XDesktop2 > xDesktop = Desktop::create( m_xContext ); - s_xTerminateListener = new OConnectionController(this); - xDesktop->addTerminateListener(s_xTerminateListener); - } + auto tmp = new OConnectionController(this); + xDesktop->addTerminateListener(tmp); + return tmp; + }(); Reference< XComponent> xIfc = new OHsqlConnection( this, xOrig, m_xContext ); xConnection.set(xIfc,UNO_QUERY); m_aConnections.push_back(TWeakPair(WeakReferenceHelper(xOrig),TWeakConnectionPair(sKey,TWeakRefPair(WeakReferenceHelper(xConnection),WeakReferenceHelper())))); diff --git a/connectivity/source/drivers/jdbc/CallableStatement.cxx b/connectivity/source/drivers/jdbc/CallableStatement.cxx index 49c5b0d88bad..720b9c9a8ff1 100644 --- a/connectivity/source/drivers/jdbc/CallableStatement.cxx +++ b/connectivity/source/drivers/jdbc/CallableStatement.cxx @@ -327,12 +327,11 @@ void java_sql_CallableStatement::createStatement(JNIEnv* /*_pEnv*/) // convert Parameter jdbc::LocalRef< jstring > str( t.env(),convertwchar_tToJavaString(t.pEnv,m_sSqlStatement)); - static jmethodID mID(nullptr); - if ( !mID ) + static jmethodID mID = [&]() { static const char * const cSignature = "(Ljava/lang/String;II)Ljava/sql/CallableStatement;"; - mID = t.pEnv->GetMethodID( m_pConnection->getMyClass(), cMethodName, cSignature ); - } + return t.pEnv->GetMethodID( m_pConnection->getMyClass(), cMethodName, cSignature ); + }(); if( mID ){ out = t.pEnv->CallObjectMethod( m_pConnection->getJavaObject(), mID, str.get() ,m_nResultSetType,m_nResultSetConcurrency); } //mID diff --git a/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx b/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx index 0c09f95211e0..706d6e064241 100644 --- a/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx +++ b/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx @@ -736,16 +736,16 @@ Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTableTypes( ) ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTableTypes); Reference< XResultSet > xRef = pResult; - static ODatabaseMetaDataResultSet::ORows aRows; - static const char aTable[] = "TABLE"; - - if (aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = [&] { + static const char aTable[] = "TABLE"; + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow(2); aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); aRow[1] = new ORowSetValueDecorator(OUString(aTable)); - aRows.push_back(aRow); - } + tmp.push_back(aRow); + return tmp; + }(); pResult->setRows(aRows); return xRef; } @@ -755,9 +755,9 @@ Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTypeInfo( ) ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo); Reference< XResultSet > xRef = pResult; - static ODatabaseMetaDataResultSet::ORows aRows; - if (aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = [&]() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow(19); // We support four types: char, timestamp, integer, float @@ -781,27 +781,29 @@ Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTypeInfo( ) aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue(); aRow[18] = new ORowSetValueDecorator(sal_Int32(10)); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP")); aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP); aRow[3] = new ORowSetValueDecorator(sal_Int32(19)); aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("INTEGER")); aRow[2] = new ORowSetValueDecorator(DataType::INTEGER); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[15] = new ORowSetValueDecorator(sal_Int32(20)); - aRows.push_back(aRow); + tmp.push_back(aRow); aRow[1] = new ORowSetValueDecorator(OUString("FLOAT")); aRow[2] = new ORowSetValueDecorator(DataType::FLOAT); aRow[3] = new ORowSetValueDecorator(sal_Int32(20)); aRow[15] = new ORowSetValueDecorator(sal_Int32(15)); - aRows.push_back(aRow); - } + tmp.push_back(aRow); + + return tmp; + }(); pResult->setRows(aRows); return xRef; } @@ -943,10 +945,9 @@ Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTables( if (!bTableFound) return xRef; - static ODatabaseMetaDataResultSet::ORows aRows; - - if (aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = [&]() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow(6); MacabRecords *xRecords = m_xConnection->getAddressBook()->getMacabRecords(); @@ -960,14 +961,15 @@ Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTables( aRow[3] = new ORowSetValueDecorator(xRecords->getName()); aRow[4] = new ORowSetValueDecorator(OUString(aTable)); aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRows.push_back(aRow); + tmp.push_back(aRow); for(i = 0; i < nGroups; i++) { aRow[3] = new ORowSetValueDecorator(xGroups[i]->getName()); - aRows.push_back(aRow); + tmp.push_back(aRow); } - } + return tmp; + }(); pResult->setRows(aRows); return xRef; } diff --git a/connectivity/source/drivers/mork/MDatabaseMetaData.cxx b/connectivity/source/drivers/mork/MDatabaseMetaData.cxx index 0ce5c3e856ca..77d70f7f9093 100644 --- a/connectivity/source/drivers/mork/MDatabaseMetaData.cxx +++ b/connectivity/source/drivers/mork/MDatabaseMetaData.cxx @@ -839,10 +839,9 @@ Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw( ) // in special the metadata of the resultset already returns the right columns ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo); Reference< XResultSet > xResultSet = pResultSet; - static ODatabaseMetaDataResultSet::ORows aRows; - - if(aRows.empty()) + static ODatabaseMetaDataResultSet::ORows aRows = [&]() { + ODatabaseMetaDataResultSet::ORows tmp; ODatabaseMetaDataResultSet::ORow aRow; aRow.reserve(19); aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); @@ -866,9 +865,9 @@ Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw( ) aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); aRow.push_back(new ORowSetValueDecorator(sal_Int32(10))); - aRows.push_back(aRow); - - } + tmp.push_back(aRow); + return tmp; + }(); pResultSet->setRows(aRows); return xResultSet; } diff --git a/connectivity/source/drivers/postgresql/pq_baseresultset.cxx b/connectivity/source/drivers/postgresql/pq_baseresultset.cxx index 6828c471c1ed..f28ec81ff67e 100644 --- a/connectivity/source/drivers/postgresql/pq_baseresultset.cxx +++ b/connectivity/source/drivers/postgresql/pq_baseresultset.cxx @@ -111,8 +111,7 @@ static ::cppu::IPropertyArrayHelper & getResultSetPropertyArrayHelper() "ResultSetType", 6, ::cppu::UnoType<sal_Int32>::get() , 0 )}, true ); - static ::cppu::IPropertyArrayHelper *pArrayHelper = &arrayHelper; - return *pArrayHelper; + return arrayHelper; } BaseResultSet::BaseResultSet( diff --git a/connectivity/source/drivers/postgresql/pq_statement.cxx b/connectivity/source/drivers/postgresql/pq_statement.cxx index 17276c94925f..db99a20910b0 100644 --- a/connectivity/source/drivers/postgresql/pq_statement.cxx +++ b/connectivity/source/drivers/postgresql/pq_statement.cxx @@ -138,9 +138,7 @@ static ::cppu::IPropertyArrayHelper & getStatementPropertyArrayHelper() ::cppu::UnoType<sal_Int32>::get() , 0 )}, true ); - static ::cppu::IPropertyArrayHelper *pArrayHelper = &arrayHelper; - - return *pArrayHelper; + return arrayHelper; } Statement::Statement( const ::rtl::Reference< comphelper::RefCountedMutex > & refMutex, |