diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-03-11 11:06:57 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-03-25 07:19:13 +0100 |
commit | b1cfdb7bee4f7af97af54e6abbc5d04aed4ba082 (patch) | |
tree | 8211ea564e36152b9eeb7be7212342d9e82800c6 /connectivity | |
parent | 26b81b23f0ad061b6d44fcea3e07ae4b18a63f94 (diff) |
new loplugin:unoquery
look for places we are doing code like:
Reference<XProperty>(model, css::uno::UNO_QUERY)->getAsProperty()
which might result in a SIGSEGV is the query fails
Change-Id: I5cbdbc9e64bd0bed588297c512bf60cbacb9442e
Reviewed-on: https://gerrit.libreoffice.org/69044
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/drivers/component/CTable.cxx | 2 | ||||
-rw-r--r-- | connectivity/source/drivers/dbase/DTable.cxx | 4 | ||||
-rw-r--r-- | connectivity/source/drivers/file/FConnection.cxx | 2 | ||||
-rw-r--r-- | connectivity/source/drivers/file/FStatement.cxx | 6 | ||||
-rw-r--r-- | connectivity/source/drivers/file/fcomp.cxx | 2 | ||||
-rw-r--r-- | connectivity/source/drivers/flat/ETable.cxx | 2 | ||||
-rw-r--r-- | connectivity/source/drivers/postgresql/pq_connection.cxx | 5 |
7 files changed, 12 insertions, 11 deletions
diff --git a/connectivity/source/drivers/component/CTable.cxx b/connectivity/source/drivers/component/CTable.cxx index b260843b7c16..2bc92ecfae6d 100644 --- a/connectivity/source/drivers/component/CTable.cxx +++ b/connectivity/source/drivers/component/CTable.cxx @@ -84,7 +84,7 @@ void OComponentTable::refreshColumns() ::std::vector< OUString> aVector; for(const auto& rxColumn : m_aColumns->get()) - aVector.push_back(Reference< XNamed>(rxColumn,UNO_QUERY)->getName()); + aVector.push_back(Reference< XNamed>(rxColumn,UNO_QUERY_THROW)->getName()); if(m_xColumns) m_xColumns->reFill(aVector); diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 1f901f363d9b..d8a65d0cd241 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -641,7 +641,7 @@ void ODbaseTable::refreshColumns() aVector.reserve(m_aColumns->get().size()); for (auto const& column : m_aColumns->get()) - aVector.push_back(Reference< XNamed>(column,UNO_QUERY)->getName()); + aVector.push_back(Reference< XNamed>(column,UNO_QUERY_THROW)->getName()); if(m_xColumns) m_xColumns->reFill(aVector); @@ -1605,7 +1605,7 @@ Reference<XPropertySet> ODbaseTable::isUniqueByColumnName(sal_Int32 _nColumnPos) xIndex.set(m_xIndexes->getByIndex(i), css::uno::UNO_QUERY); if(xIndex.is() && getBOOL(xIndex->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISUNIQUE)))) { - Reference<XNameAccess> xCols(Reference<XColumnsSupplier>(xIndex,UNO_QUERY)->getColumns()); + Reference<XNameAccess> xCols(Reference<XColumnsSupplier>(xIndex,UNO_QUERY_THROW)->getColumns()); if(xCols->hasByName(sColName)) return xIndex; diff --git a/connectivity/source/drivers/file/FConnection.cxx b/connectivity/source/drivers/file/FConnection.cxx index c7ca89eec114..afa6cc598668 100644 --- a/connectivity/source/drivers/file/FConnection.cxx +++ b/connectivity/source/drivers/file/FConnection.cxx @@ -179,7 +179,7 @@ void OConnection::construct(const OUString& url,const Sequence< PropertyValue >& } else if (aFile.isDocument()) { - Reference<XContent> xParent(Reference<XChild>(aFile.get(),UNO_QUERY)->getParent(),UNO_QUERY); + Reference<XContent> xParent(Reference<XChild>(aFile.get(),UNO_QUERY_THROW)->getParent(),UNO_QUERY_THROW); Reference<XContentIdentifier> xIdent = xParent->getIdentifier(); m_xContent = xParent; diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx index 5cd6bb8267e1..975b0d12d7a0 100644 --- a/connectivity/source/drivers/file/FStatement.cxx +++ b/connectivity/source/drivers/file/FStatement.cxx @@ -478,7 +478,7 @@ void OStatement_Base::GetAssignValues() // Create Row for the values to be set (Reference through new) if(m_aAssignValues.is()) m_aAssignValues->get().clear(); - sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY)->getCount(); + sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY_THROW)->getCount(); m_aAssignValues = new OAssignValues(nCount); // unbound all std::for_each(m_aAssignValues->get().begin()+1,m_aAssignValues->get().end(),TSetRefBound(false)); @@ -565,7 +565,7 @@ void OStatement_Base::GetAssignValues() { if(m_aAssignValues.is()) m_aAssignValues->get().clear(); - sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY)->getCount(); + sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY_THROW)->getCount(); m_aAssignValues = new OAssignValues(nCount); // unbound all std::for_each(m_aAssignValues->get().begin()+1,m_aAssignValues->get().end(),TSetRefBound(false)); @@ -642,7 +642,7 @@ void OStatement_Base::SetAssignValue(const OUString& aColumnName, { Reference<XPropertySet> xCol; m_xColNames->getByName(aColumnName) >>= xCol; - sal_Int32 nId = Reference<XColumnLocate>(m_xColNames,UNO_QUERY)->findColumn(aColumnName); + sal_Int32 nId = Reference<XColumnLocate>(m_xColNames,UNO_QUERY_THROW)->findColumn(aColumnName); // does this column actually exist in the file? if (!xCol.is()) diff --git a/connectivity/source/drivers/file/fcomp.cxx b/connectivity/source/drivers/file/fcomp.cxx index 63cbd0abb9b2..7de9c5fb60dc 100644 --- a/connectivity/source/drivers/file/fcomp.cxx +++ b/connectivity/source/drivers/file/fcomp.cxx @@ -439,7 +439,7 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode const * pPredicateNo { if (m_orgColumns->getByName(aColumnName) >>= xCol) { - pOperand = OSQLAnalyzer::createOperandAttr(Reference< XColumnLocate>(m_orgColumns,UNO_QUERY)->findColumn(aColumnName),xCol); + pOperand = OSQLAnalyzer::createOperandAttr(Reference< XColumnLocate>(m_orgColumns,UNO_QUERY_THROW)->findColumn(aColumnName),xCol); } else {// Column doesn't exist in the Result-set diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index 1d4d3baafd63..8dc7903cd11c 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -501,7 +501,7 @@ void OFlatTable::refreshColumns() aVector.reserve(m_aColumns->get().size()); for (auto const& column : m_aColumns->get()) - aVector.push_back(Reference< XNamed>(column,UNO_QUERY)->getName()); + aVector.push_back(Reference< XNamed>(column,UNO_QUERY_THROW)->getName()); if(m_xColumns) m_xColumns->reFill(aVector); diff --git a/connectivity/source/drivers/postgresql/pq_connection.cxx b/connectivity/source/drivers/postgresql/pq_connection.cxx index 74afc570154d..a950bde8b051 100644 --- a/connectivity/source/drivers/postgresql/pq_connection.cxx +++ b/connectivity/source/drivers/postgresql/pq_connection.cxx @@ -81,6 +81,7 @@ using com::sun::star::uno::Sequence; using com::sun::star::uno::Reference; using com::sun::star::uno::XInterface; using com::sun::star::uno::UNO_QUERY; +using com::sun::star::uno::UNO_QUERY_THROW; using com::sun::star::uno::XComponentContext; using com::sun::star::uno::Any; @@ -607,7 +608,7 @@ Reference< XNameAccess > Connection::getTables() m_settings.tables = Tables::create( m_xMutex, this, &m_settings , &m_settings.pTablesImpl); else // TODO: how to overcome the performance problem ? - Reference< css::util::XRefreshable > ( m_settings.tables, UNO_QUERY )->refresh(); + Reference< css::util::XRefreshable > ( m_settings.tables, UNO_QUERY_THROW )->refresh(); return m_settings.tables; } @@ -622,7 +623,7 @@ Reference< XNameAccess > Connection::getViews() m_settings.views = Views::create( m_xMutex, this, &m_settings, &(m_settings.pViewsImpl) ); else // TODO: how to overcome the performance problem ? - Reference< css::util::XRefreshable > ( m_settings.views, UNO_QUERY )->refresh(); + Reference< css::util::XRefreshable > ( m_settings.views, UNO_QUERY_THROW )->refresh(); return m_settings.views; } |