Common/LinearDiskCache: Use unique_ptr instead of new/delete.

This commit is contained in:
Admiral H. Curtiss 2020-12-19 18:06:15 +01:00
parent eb6fd56c1d
commit e91a347a07
1 changed files with 6 additions and 6 deletions

View File

@ -6,6 +6,7 @@
#include <algorithm> #include <algorithm>
#include <cstring> #include <cstring>
#include <memory>
#include <string> #include <string>
#include <type_traits> #include <type_traits>
@ -72,7 +73,7 @@ public:
// good header, read some key/value pairs // good header, read some key/value pairs
K key; K key;
V* value = nullptr; std::unique_ptr<V[]> value = nullptr;
u32 value_size = 0; u32 value_size = 0;
u32 entry_number = 0; u32 entry_number = 0;
@ -82,14 +83,14 @@ public:
if (next_extent > file_size) if (next_extent > file_size)
break; break;
delete[] value; // TODO: use make_unique_for_overwrite in C++20
value = new V[value_size]; value = std::unique_ptr<V[]>(new V[value_size]);
// read key/value and pass to reader // read key/value and pass to reader
if (m_file.ReadArray(&key, 1) && m_file.ReadArray(value, value_size) && if (m_file.ReadArray(&key, 1) && m_file.ReadArray(value.get(), value_size) &&
m_file.ReadArray(&entry_number, 1) && entry_number == m_num_entries + 1) m_file.ReadArray(&entry_number, 1) && entry_number == m_num_entries + 1)
{ {
reader.Read(key, value, value_size); reader.Read(key, value.get(), value_size);
} }
else else
{ {
@ -100,7 +101,6 @@ public:
} }
m_file.Clear(); m_file.Clear();
delete[] value;
return m_num_entries; return m_num_entries;
} }