Skip to content

Commit c432e9c

Browse files
committed
Use std::unique_ptr for SegmentDataReader instances
1 parent d1d7f82 commit c432e9c

7 files changed

+12
-16
lines changed

src/index/index_reader.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ IndexReader::~IndexReader()
3232
}
3333
}
3434

35-
SegmentDataReader* IndexReader::segmentDataReader(const SegmentInfo& segment)
35+
std::unique_ptr<SegmentDataReader> IndexReader::segmentDataReader(const SegmentInfo& segment)
3636
{
37-
return new SegmentDataReader(m_dir->openFile(segment.dataFileName()), BLOCK_SIZE);
37+
return std::make_unique<SegmentDataReader>(m_dir->openFile(segment.dataFileName()), BLOCK_SIZE);
3838
}
3939

4040
std::vector<SearchResult> IndexReader::search(const std::vector<uint32_t> &hashesIn, int64_t timeoutInMSecs)

src/index/index_reader.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class IndexReader
3131

3232
std::vector<SearchResult> search(const std::vector<uint32_t> &hashes, int64_t timeoutInMSecs = 0);
3333

34-
SegmentDataReader* segmentDataReader(const SegmentInfo& segment);
34+
std::unique_ptr<SegmentDataReader> segmentDataReader(const SegmentInfo& segment);
3535

3636
protected:
3737
DirectorySharedPtr m_dir;

src/index/segment_enum.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ namespace Acoustid {
1313
class SegmentEnum
1414
{
1515
public:
16-
SegmentEnum(SegmentIndexSharedPtr index, SegmentDataReader *dataReader)
17-
: m_index(index), m_dataReader(dataReader), m_block(0),
16+
SegmentEnum(SegmentIndexSharedPtr index, std::unique_ptr<SegmentDataReader> &&dataReader)
17+
: m_index(index), m_dataReader(std::move(dataReader)), m_block(0),
1818
m_currentBlock(nullptr)
1919
{}
2020

src/index/segment_enum_test.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ TEST(SegmentEnumTest, Iterate)
3838
InputStream *indexInput = dir.openFile("segment_0.fii");
3939
InputStream *dataInput = dir.openFile("segment_0.fid");
4040
SegmentIndexSharedPtr index = SegmentIndexReader(indexInput, blockCount).read();
41-
SegmentDataReader *dataReader = new SegmentDataReader(dataInput, 8);
4241

43-
SegmentEnum reader(index, dataReader);
42+
SegmentEnum reader(index, std::make_unique<SegmentDataReader>(dataInput, 8));
4443
ASSERT_TRUE(reader.next());
4544
ASSERT_EQ(200, reader.key());
4645
ASSERT_EQ(300, reader.value());

src/index/segment_merger_test.cpp

+3-6
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,12 @@ TEST(SegmentMergerTest, Iterate)
6161
InputStream *indexInput1 = dir.openFile("segment_0.fii");
6262
InputStream *dataInput1 = dir.openFile("segment_0.fid");
6363
SegmentIndexSharedPtr index1 = SegmentIndexReader(indexInput1, blockCount0).read();
64-
SegmentDataReader *dataReader1 = new SegmentDataReader(dataInput1, 8);
65-
SegmentEnum *reader1 = new SegmentEnum(index1, dataReader1);
64+
SegmentEnum *reader1 = new SegmentEnum(index1, std::make_unique<SegmentDataReader>(dataInput1, 8));
6665

6766
InputStream *indexInput2 = dir.openFile("segment_1.fii");
6867
InputStream *dataInput2 = dir.openFile("segment_1.fid");
6968
SegmentIndexSharedPtr index2 = SegmentIndexReader(indexInput2, blockCount1).read();
70-
SegmentDataReader *dataReader2 = new SegmentDataReader(dataInput2, 8);
71-
SegmentEnum *reader2 = new SegmentEnum(index2, dataReader2);
69+
SegmentEnum *reader2 = new SegmentEnum(index2, std::make_unique<SegmentDataReader>(dataInput2, 8));
7270

7371
SegmentMerger merger(writer);
7472
merger.addSource(reader1);
@@ -79,8 +77,7 @@ TEST(SegmentMergerTest, Iterate)
7977
InputStream *indexInput = dir.openFile("segment_2.fii");
8078
InputStream *dataInput = dir.openFile("segment_2.fid");
8179
SegmentIndexSharedPtr index = SegmentIndexReader(indexInput, blockCount).read();
82-
SegmentDataReader *dataReader = new SegmentDataReader(dataInput, 8);
83-
SegmentEnum reader(index, dataReader);
80+
SegmentEnum reader(index, std::make_unique<SegmentDataReader>(dataInput, 8));
8481

8582
ASSERT_TRUE(reader.next());
8683
ASSERT_EQ(199, reader.key());

src/index/segment_searcher.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
using namespace Acoustid;
99

10-
SegmentSearcher::SegmentSearcher(SegmentIndexSharedPtr index, SegmentDataReader *dataReader, uint32_t lastKey)
11-
: m_index(index), m_dataReader(dataReader), m_lastKey(lastKey)
10+
SegmentSearcher::SegmentSearcher(SegmentIndexSharedPtr index, std::unique_ptr<SegmentDataReader> &&dataReader, uint32_t lastKey)
11+
: m_index(index), m_dataReader(std::move(dataReader)), m_lastKey(lastKey)
1212
{
1313
}
1414

src/index/segment_searcher.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class SegmentDataReader;
1414
class SegmentSearcher
1515
{
1616
public:
17-
SegmentSearcher(SegmentIndexSharedPtr index, SegmentDataReader *dataReader, uint32_t lastKey = UINT32_MAX);
17+
SegmentSearcher(SegmentIndexSharedPtr index, std::unique_ptr<SegmentDataReader> &&dataReader, uint32_t lastKey = UINT32_MAX);
1818
virtual ~SegmentSearcher();
1919

2020
void search(const std::vector<uint32_t> &hashes, std::unordered_map<uint32_t, int> &hits);

0 commit comments

Comments
 (0)