summaryrefslogtreecommitdiff
path: root/xmlhelp/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-11-17 10:31:00 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-11-17 12:58:56 +0100
commit4b69497e36b941d4db62ae8d5bad863d032fdc50 (patch)
treed9670520236ac5be55abc9fb6369ae431641fca3 /xmlhelp/source
parenta2ed9435273d880e41b4d9196a37bfbf7f43d068 (diff)
loplugin:useuniqueptr in TVDom
Change-Id: I885c202c64f43b89372d079659dd9b5b12677fbd Reviewed-on: https://gerrit.libreoffice.org/44861 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'xmlhelp/source')
-rw-r--r--xmlhelp/source/treeview/tvread.cxx38
1 files changed, 17 insertions, 21 deletions
diff --git a/xmlhelp/source/treeview/tvread.cxx b/xmlhelp/source/treeview/tvread.cxx
index af03833bc58e..5339a93117d7 100644
--- a/xmlhelp/source/treeview/tvread.cxx
+++ b/xmlhelp/source/treeview/tvread.cxx
@@ -37,6 +37,7 @@
#include <com/sun/star/uri/XVndSunStarExpandUrl.hpp>
#include <i18nlangtag/languagetag.hxx>
#include <unotools/pathoptions.hxx>
+#include <memory>
namespace treeview {
@@ -54,23 +55,17 @@ namespace treeview {
{
}
- ~TVDom()
- {
- for(TVDom* p : children)
- delete p;
- }
-
TVDom* newChild()
{
- children.push_back( new TVDom( this ) );
- return children.back();
+ children.emplace_back( new TVDom( this ) );
+ return children.back().get();
}
TVDom* newChild(TVDom* p)
{
- children.push_back( p );
+ children.emplace_back( p );
p->parent = this;
- return children.back();
+ return children.back().get();
}
TVDom* getParent() const
@@ -158,7 +153,7 @@ namespace treeview {
OUString targetURL;
TVDom *parent;
- std::vector< TVDom* > children;
+ std::vector< std::unique_ptr<TVDom> > children;
};
}
@@ -382,7 +377,7 @@ TVChildTarget::TVChildTarget( const ConfigData& configData,TVDom* tvDom )
{
Elements.resize( tvDom->children.size() );
for( size_t i = 0; i < Elements.size(); ++i )
- Elements[i] = new TVRead( configData,tvDom->children[i] );
+ Elements[i] = new TVRead( configData,tvDom->children[i].get() );
}
TVChildTarget::TVChildTarget( const Reference< XComponentContext >& xContext )
@@ -428,7 +423,7 @@ TVChildTarget::TVChildTarget( const Reference< XComponentContext >& xContext )
Elements.resize( tvDom.children.size() );
for( size_t i = 0; i < Elements.size(); ++i )
- Elements[i] = new TVRead( configData,tvDom.children[i] );
+ Elements[i] = new TVRead( configData,tvDom.children[i].get() );
}
TVChildTarget::~TVChildTarget()
@@ -450,11 +445,11 @@ void TVChildTarget::Check(TVDom* tvDom)
if (((tvDom->children[i])->application == (tvDom->children[tvDom->children.size()-1])->application) &&
((tvDom->children[i])->id == (tvDom->children[tvDom->children.size()-1])->id))
{
- TVDom* p = tvDom->children[tvDom->children.size()-1];
+ TVDom* p = tvDom->children.back().get();
- for(TVDom* k : p->children)
- if (!SearchAndInsert(k, tvDom->children[i]))
- tvDom->children[i]->newChild(k);
+ for(auto & k : p->children)
+ if (!SearchAndInsert(k.get(), tvDom->children[i].get()))
+ tvDom->children[i]->newChild(k.get());
tvDom->children.pop_back();
h = true;
@@ -470,7 +465,7 @@ bool TVChildTarget::SearchAndInsert(TVDom* p, TVDom* tvDom)
bool h = false;
sal_Int32 max = 0;
- std::vector< TVDom* >::iterator max_It, i;
+ std::vector< std::unique_ptr<TVDom> >::iterator max_It, i;
max_It = tvDom->children.begin();
sal_Int32 c_int;
@@ -486,7 +481,7 @@ bool TVChildTarget::SearchAndInsert(TVDom* p, TVDom* tvDom)
if (p_int==c_int)
{
- (*(tvDom->children.insert(i+1, p)))->parent = tvDom;
+ (*(tvDom->children.insert(i+1, std::unique_ptr<TVDom>(p))))->parent = tvDom;
return true;
}
else if(c_int>max && c_int < p_int)
@@ -495,13 +490,14 @@ bool TVChildTarget::SearchAndInsert(TVDom* p, TVDom* tvDom)
max_It = i+1;
}
}
- if (h) (*(tvDom->children.insert(max_It, p)))->parent = tvDom;
+ if (h)
+ (*(tvDom->children.insert(max_It, std::unique_ptr<TVDom>(p))))->parent = tvDom;
else
{
i = tvDom->children.begin();
while ((i!=tvDom->children.end()) && (!h))
{
- h = SearchAndInsert(p, *i);
+ h = SearchAndInsert(p, i->get());
++i;
}
}