summaryrefslogtreecommitdiff
path: root/src/array_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/array_data.cc')
-rw-r--r--src/array_data.cc22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/array_data.cc b/src/array_data.cc
index 1234ba22..52a22cf6 100644
--- a/src/array_data.cc
+++ b/src/array_data.cc
@@ -45,35 +45,25 @@
#include <cstdio>
-using boost::shared_array;
using namespace dcp;
ArrayData::ArrayData ()
+ : _data(std::make_shared<std::vector<uint8_t>>())
{
}
ArrayData::ArrayData (int size)
- : _data (new uint8_t[size])
- , _size (size)
+ : _data(std::make_shared<std::vector<uint8_t>>(size))
{
}
ArrayData::ArrayData (uint8_t const * data, int size)
- : _data (new uint8_t[size])
- , _size (size)
-{
- memcpy (_data.get(), data, size);
-}
-
-
-ArrayData::ArrayData (shared_array<uint8_t> data, int size)
- : _data (data)
- , _size (size)
+ : _data(std::make_shared<std::vector<uint8_t>>(data, data + size))
{
}
@@ -81,15 +71,15 @@ ArrayData::ArrayData (shared_array<uint8_t> data, int size)
ArrayData::ArrayData (boost::filesystem::path file)
{
- _size = boost::filesystem::file_size (file);
- _data.reset (new uint8_t[_size]);
+ auto const size = boost::filesystem::file_size (file);
+ _data = std::make_shared<std::vector<uint8_t>>(size);
File f(file, "rb");
if (!f) {
throw FileError ("could not open file for reading", file, errno);
}
- if (f.read(_data.get(), 1, _size) != static_cast<size_t>(_size)) {
+ if (f.read(_data->data(), 1, size) != static_cast<size_t>(size)) {
throw FileError ("could not read from file", file, errno);
}
}