summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2017-09-19 17:46:22 +0900
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-09-19 13:06:19 +0200
commitf83b97f7ae5597462c3b22fc273ca477b2e6fa35 (patch)
tree00b805ec8d229bd71b051272d1055e65a55af23f
parentClean up a couple of overly verbose SAL_INFOs (diff)
downloadcore-f83b97f7ae5597462c3b22fc273ca477b2e6fa35.tar.gz
core-f83b97f7ae5597462c3b22fc273ca477b2e6fa35.zip
svx: Simplify FmSearchEngine's code with std::unique_ptr
Change-Id: Ibda0f912c940091676889529224488846c91b50f Reviewed-on: https://gerrit.libreoffice.org/42456 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--include/svx/fmsrcimp.hxx7
-rw-r--r--svx/source/form/fmsrcimp.cxx23
2 files changed, 7 insertions, 23 deletions
diff --git a/include/svx/fmsrcimp.hxx b/include/svx/fmsrcimp.hxx
index 8e21cc92473d..112f4314abd8 100644
--- a/include/svx/fmsrcimp.hxx
+++ b/include/svx/fmsrcimp.hxx
@@ -36,6 +36,7 @@
#include <osl/thread.hxx>
#include <deque>
+#include <memory>
#include <vector>
enum class TransliterationFlags;
@@ -171,8 +172,8 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC FmSearchEngine final
FieldCollection m_arrUsedFields;
sal_Int32 m_nCurrentFieldIndex; // the last parameter of RebuildUsedFields, it allows checks in FormatField
- typedef std::vector<svxform::ControlTextWrapper*> ControlTextSuppliers;
- ControlTextSuppliers m_aControlTexts;
+ std::vector<std::unique_ptr<svxform::ControlTextWrapper>>
+ m_aControlTexts;
CursorWrapper m_xOriginalIterator;
CursorWrapper m_xClonedIterator;
@@ -273,8 +274,6 @@ public:
const OUString& strVisibleFields,
const InterfaceArray& arrFields);
- ~FmSearchEngine();
-
/** the link will be called on every record and after the completion of the search, the parameter is a pointer to
a FmSearchProgress structure
the handler should be in any case thread-safe
diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx
index eb05a3676639..596e942f2348 100644
--- a/svx/source/form/fmsrcimp.cxx
+++ b/svx/source/form/fmsrcimp.cxx
@@ -281,7 +281,7 @@ void FmSearchEngine::BuildAndInsertFieldInfo(const Reference< css::container::XI
OUString FmSearchEngine::FormatField(sal_Int32 nWhich)
{
DBG_ASSERT((sal_uInt32)nWhich < m_aControlTexts.size(), "FmSearchEngine::FormatField(sal_Int32) : invalid position !");
- DBG_ASSERT(m_aControlTexts[nWhich] != nullptr, "FmSearchEngine::FormatField(sal_Int32) : invalid object in array !");
+ DBG_ASSERT(m_aControlTexts[nWhich], "FmSearchEngine::FormatField(sal_Int32) : invalid object in array !");
DBG_ASSERT(m_aControlTexts[nWhich]->getControl().is(), "FmSearchEngine::FormatField : invalid control !");
if (m_nCurrentFieldIndex != -1)
@@ -592,13 +592,6 @@ FmSearchEngine::FmSearchEngine(const Reference< XComponentContext >& _rxContext,
}
-FmSearchEngine::~FmSearchEngine()
-{
- clearControlTexts();
-
-}
-
-
void FmSearchEngine::SetIgnoreWidthCJK(bool bSet)
{
if (bSet)
@@ -631,14 +624,6 @@ bool FmSearchEngine::GetCaseSensitive() const
void FmSearchEngine::clearControlTexts()
{
- ControlTextSuppliers::const_iterator aEnd = m_aControlTexts.end();
- for ( ControlTextSuppliers::iterator aIter = m_aControlTexts.begin();
- aIter != aEnd;
- ++aIter
- )
- {
- delete *aIter;
- }
m_aControlTexts.clear();
}
@@ -655,21 +640,21 @@ void FmSearchEngine::fillControlTexts(const InterfaceArray& arrFields)
Reference< css::awt::XTextComponent > xAsText(xCurrent, UNO_QUERY);
if (xAsText.is())
{
- m_aControlTexts.insert(m_aControlTexts.end(), new SimpleTextWrapper(xAsText));
+ m_aControlTexts.emplace_back(new SimpleTextWrapper(xAsText));
continue;
}
Reference< css::awt::XListBox > xAsListBox(xCurrent, UNO_QUERY);
if (xAsListBox.is())
{
- m_aControlTexts.insert(m_aControlTexts.end(), new ListBoxWrapper(xAsListBox));
+ m_aControlTexts.emplace_back(new ListBoxWrapper(xAsListBox));
continue;
}
Reference< css::awt::XCheckBox > xAsCheckBox(xCurrent, UNO_QUERY);
DBG_ASSERT(xAsCheckBox.is(), "FmSearchEngine::fillControlTexts : invalid field interface (no supported type) !");
// we don't have any more options ...
- m_aControlTexts.insert(m_aControlTexts.end(), new CheckBoxWrapper(xAsCheckBox));
+ m_aControlTexts.emplace_back(new CheckBoxWrapper(xAsCheckBox));
}
}