summaryrefslogtreecommitdiff
path: root/o3tl
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-31 14:46:38 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-02-01 12:15:22 +0000
commit2489000d3fd66319a8355fd4e37cfdfda47296d0 (patch)
treecaad79e7b5bec3863604b20190b682c0d73d2b25 /o3tl
parent595848c85acc2609fcc48a40c7a9f216a2722cd8 (diff)
loplugin:useuniqueptr extend to check local vars
just the simple and obvious case for now, of a local var being allocated and deleted inside a single local block, and the delete happening at the end of the block Change-Id: I3a7a094da543debdcd2374737c2ecff91d644625 Reviewed-on: https://gerrit.libreoffice.org/33749 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'o3tl')
-rw-r--r--o3tl/qa/test-sorted_vector.cxx150
1 files changed, 66 insertions, 84 deletions
diff --git a/o3tl/qa/test-sorted_vector.cxx b/o3tl/qa/test-sorted_vector.cxx
index 471ca7e12dfb..3f05381fe423 100644
--- a/o3tl/qa/test-sorted_vector.cxx
+++ b/o3tl/qa/test-sorted_vector.cxx
@@ -36,41 +36,38 @@ public:
void testBasics()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent> > aVec;
- SwContent *p1 = new SwContent(1);
- SwContent *p2 = new SwContent(2);
+ std::unique_ptr<SwContent> p1( new SwContent(1) );
+ std::unique_ptr<SwContent> p2( new SwContent(2) );
SwContent *p3 = new SwContent(3);
- SwContent *p4 = new SwContent(4);
+ std::unique_ptr<SwContent> p4( new SwContent(4) );
CPPUNIT_ASSERT( aVec.insert(p3).second );
- CPPUNIT_ASSERT( aVec.insert(p1).second );
+ CPPUNIT_ASSERT( aVec.insert(p1.get()).second );
CPPUNIT_ASSERT( !aVec.insert(p3).second );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(2), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( p1, aVec[0] );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), aVec[0] );
CPPUNIT_ASSERT_EQUAL( p3, aVec[1] );
- CPPUNIT_ASSERT_EQUAL( p1, *aVec.begin() );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), *aVec.begin() );
CPPUNIT_ASSERT_EQUAL( p3, *(aVec.end()-1) );
- CPPUNIT_ASSERT_EQUAL( p1, aVec.front() );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), aVec.front() );
CPPUNIT_ASSERT_EQUAL( p3, aVec.back() );
- CPPUNIT_ASSERT( aVec.find(p1) != aVec.end() );
- CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(0), aVec.find(p1) - aVec.begin() );
+ CPPUNIT_ASSERT( aVec.find(p1.get()) != aVec.end() );
+ CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(0), aVec.find(p1.get()) - aVec.begin() );
CPPUNIT_ASSERT( aVec.find(p3) != aVec.end() );
CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(1), aVec.find(p3) - aVec.begin() );
- CPPUNIT_ASSERT( bool(aVec.find(p2) == aVec.end()) );
- CPPUNIT_ASSERT( bool(aVec.find(p4) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p2.get()) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p4.get()) == aVec.end()) );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1.get()) );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p2) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p2.get()) );
aVec.DeleteAndDestroyAll();
- delete p1;
- delete p2;
- delete p4;
}
void testErase()
@@ -79,7 +76,7 @@ public:
SwContent *p1 = new SwContent(1);
SwContent *p2 = new SwContent(2);
SwContent *p3 = new SwContent(3);
- SwContent *p4 = new SwContent(4);
+ std::unique_ptr<SwContent> p4( new SwContent(4) );
aVec.insert(p1);
aVec.insert(p2);
@@ -91,7 +88,7 @@ public:
aVec.erase(1);
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p4) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p4.get()) );
aVec.clear();
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.size() );
@@ -101,162 +98,147 @@ public:
aVec.insert(p3);
aVec.DeleteAndDestroyAll();
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.size() );
- delete p4;
}
void testInsertRange()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent> > aVec1;
- SwContent *p1 = new SwContent(1);
- SwContent *p2 = new SwContent(2);
- SwContent *p3 = new SwContent(3);
+ std::unique_ptr<SwContent> p1( new SwContent(1) );
+ std::unique_ptr<SwContent> p2( new SwContent(2) );
+ std::unique_ptr<SwContent> p3( new SwContent(3) );
- aVec1.insert(p1);
- aVec1.insert(p2);
- aVec1.insert(p3);
+ aVec1.insert(p1.get());
+ aVec1.insert(p2.get());
+ aVec1.insert(p3.get());
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent> > aVec2;
aVec2.insert( aVec1 );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(3), aVec2.size() );
- delete p1;
- delete p2;
- delete p3;
}
void testLowerBound()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent> > aVec;
- SwContent *p1 = new SwContent(1);
- SwContent *p2 = new SwContent(2);
- SwContent *p3 = new SwContent(3);
- SwContent *p4 = new SwContent(4);
+ std::unique_ptr<SwContent> p1( new SwContent(1) );
+ std::unique_ptr<SwContent> p2( new SwContent(2) );
+ std::unique_ptr<SwContent> p3( new SwContent(3) );
+ std::unique_ptr<SwContent> p4( new SwContent(4) );
- aVec.insert(p1);
- aVec.insert(p2);
- aVec.insert(p3);
+ aVec.insert(p1.get());
+ aVec.insert(p2.get());
+ aVec.insert(p3.get());
- CPPUNIT_ASSERT( bool(aVec.lower_bound(p1) == aVec.begin()) );
- CPPUNIT_ASSERT( bool(aVec.lower_bound(p4) == aVec.end()) );
- delete p1;
- delete p2;
- delete p3;
- delete p4;
+ CPPUNIT_ASSERT( bool(aVec.lower_bound(p1.get()) == aVec.begin()) );
+ CPPUNIT_ASSERT( bool(aVec.lower_bound(p4.get()) == aVec.end()) );
}
void testBasics_FindPtr()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent>,
o3tl::find_partialorder_ptrequals> aVec;
- SwContent *p1 = new SwContent(1);
- SwContent *p2 = new SwContent(2);
+ std::unique_ptr<SwContent> p1( new SwContent(1) );
+ std::unique_ptr<SwContent> p2( new SwContent(2) );
SwContent *p2_2 = new SwContent(2);
- SwContent *p2_3 = new SwContent(2);
+ std::unique_ptr<SwContent> p2_3( new SwContent(2) );
SwContent *p2_4 = new SwContent(2);
SwContent *p3 = new SwContent(3);
- SwContent *p4 = new SwContent(4);
+ std::unique_ptr<SwContent> p4( new SwContent(4) );
CPPUNIT_ASSERT( aVec.insert(p3).second );
- CPPUNIT_ASSERT( aVec.insert(p1).second );
+ CPPUNIT_ASSERT( aVec.insert(p1.get()).second );
CPPUNIT_ASSERT( !aVec.insert(p3).second );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(2), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( p1, aVec[0] );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), aVec[0] );
CPPUNIT_ASSERT_EQUAL( p3, aVec[1] );
CPPUNIT_ASSERT( aVec.insert(p2_2).second );
- CPPUNIT_ASSERT( aVec.insert(p2_3).second );
+ CPPUNIT_ASSERT( aVec.insert(p2_3.get()).second );
CPPUNIT_ASSERT( !aVec.insert(p2_2).second );
CPPUNIT_ASSERT( aVec.insert(p2_4).second );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(5), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( p1, *aVec.begin() );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), *aVec.begin() );
CPPUNIT_ASSERT_EQUAL( p3, *(aVec.end()-1) );
- CPPUNIT_ASSERT_EQUAL( p1, aVec.front() );
+ CPPUNIT_ASSERT_EQUAL( p1.get(), aVec.front() );
CPPUNIT_ASSERT_EQUAL( p3, aVec.back() );
- CPPUNIT_ASSERT( aVec.find(p1) != aVec.end() );
- CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(0), aVec.find(p1) - aVec.begin() );
+ CPPUNIT_ASSERT( aVec.find(p1.get()) != aVec.end() );
+ CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(0), aVec.find(p1.get()) - aVec.begin() );
CPPUNIT_ASSERT( aVec.find(p3) != aVec.end() );
CPPUNIT_ASSERT_EQUAL( static_cast<std::ptrdiff_t>(4), aVec.find(p3) - aVec.begin() );
- CPPUNIT_ASSERT( bool(aVec.find(p2) == aVec.end()) );
- CPPUNIT_ASSERT( bool(aVec.find(p4) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p2.get()) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p4.get()) == aVec.end()) );
CPPUNIT_ASSERT( aVec.find(p2_2) != aVec.end() );
CPPUNIT_ASSERT( aVec.find(p2_2) - aVec.begin() >= 1 );
CPPUNIT_ASSERT( aVec.find(p2_2) - aVec.begin() < 4 );
- CPPUNIT_ASSERT( aVec.find(p2_3) != aVec.end() );
- CPPUNIT_ASSERT( aVec.find(p2_3) - aVec.begin() >= 1 );
- CPPUNIT_ASSERT( aVec.find(p2_3) - aVec.begin() < 4 );
+ CPPUNIT_ASSERT( aVec.find(p2_3.get()) != aVec.end() );
+ CPPUNIT_ASSERT( aVec.find(p2_3.get()) - aVec.begin() >= 1 );
+ CPPUNIT_ASSERT( aVec.find(p2_3.get()) - aVec.begin() < 4 );
CPPUNIT_ASSERT( aVec.find(p2_4) != aVec.end() );
CPPUNIT_ASSERT( aVec.find(p2_4) - aVec.begin() >= 1 );
CPPUNIT_ASSERT( aVec.find(p2_4) - aVec.begin() < 4 );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1.get()) );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(4), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p2) );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p2_3) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p2.get()) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p2_3.get()) );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(3), aVec.size() );
aVec.DeleteAndDestroyAll();
- delete p1;
- delete p2;
- delete p2_3;
- delete p4;
}
void testErase_FindPtr()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent>,
o3tl::find_partialorder_ptrequals> aVec;
- SwContent *p1 = new SwContent(1);
+ std::unique_ptr<SwContent> p1( new SwContent(1) );
SwContent *p1_2 = new SwContent(1);
- SwContent *p1_3 = new SwContent(1);
+ std::unique_ptr<SwContent> p1_3( new SwContent(1) );
SwContent *p2 = new SwContent(2);
SwContent *p3 = new SwContent(3);
- SwContent *p4 = new SwContent(4);
+ std::unique_ptr<SwContent> p4( new SwContent(4) );
- aVec.insert(p1);
+ aVec.insert(p1.get());
aVec.insert(p2);
aVec.insert(p3);
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1.get()) );
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(2), aVec.size() );
aVec.erase(1);
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p4) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p4.get()) );
aVec.clear();
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.size() );
- aVec.insert(p1);
+ aVec.insert(p1.get());
aVec.insert(p2);
aVec.insert(p3);
aVec.insert(p1_2);
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(4), aVec.size() );
- aVec.insert(p1_3);
+ aVec.insert(p1_3.get());
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(5), aVec.size() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1) );
- CPPUNIT_ASSERT( bool(aVec.find(p1) == aVec.end()) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1.get()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p1.get()) == aVec.end()) );
CPPUNIT_ASSERT( aVec.find(p1_2) != aVec.end() );
- CPPUNIT_ASSERT( aVec.find(p1_3) != aVec.end() );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1_3) );
- CPPUNIT_ASSERT( bool(aVec.find(p1) == aVec.end()) );
+ CPPUNIT_ASSERT( aVec.find(p1_3.get()) != aVec.end() );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), aVec.erase(p1_3.get()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p1.get()) == aVec.end()) );
CPPUNIT_ASSERT( aVec.find(p1_2) != aVec.end() );
- CPPUNIT_ASSERT( bool(aVec.find(p1_3) == aVec.end()) );
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p1_3) );
- CPPUNIT_ASSERT( bool(aVec.find(p1) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p1_3.get()) == aVec.end()) );
+ CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.erase(p1_3.get()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p1.get()) == aVec.end()) );
CPPUNIT_ASSERT( aVec.find(p1_2) != aVec.end() );
- CPPUNIT_ASSERT( bool(aVec.find(p1_3) == aVec.end()) );
+ CPPUNIT_ASSERT( bool(aVec.find(p1_3.get()) == aVec.end()) );
aVec.DeleteAndDestroyAll();
CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(0), aVec.size() );
- delete p1;
- delete p1_3;
- delete p4;
}