summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mbgl/util/image_reader.hpp2
-rw-r--r--platform/default/image.cpp2
-rw-r--r--platform/default/image_reader.cpp7
3 files changed, 6 insertions, 5 deletions
diff --git a/include/mbgl/util/image_reader.hpp b/include/mbgl/util/image_reader.hpp
index 589653ec5c..4bdaf420f8 100644
--- a/include/mbgl/util/image_reader.hpp
+++ b/include/mbgl/util/image_reader.hpp
@@ -34,7 +34,7 @@ struct image_reader : private noncopyable
virtual ~image_reader() {}
};
-image_reader* get_image_reader(char const* data, size_t size);
+std::unique_ptr<image_reader> get_image_reader(char const* data, size_t size);
}}
diff --git a/platform/default/image.cpp b/platform/default/image.cpp
index 9a76ef33f6..8d0374c64c 100644
--- a/platform/default/image.cpp
+++ b/platform/default/image.cpp
@@ -76,7 +76,7 @@ Image::Image(std::string const& data)
{
try
{
- std::unique_ptr<image_reader> reader(get_image_reader(data.c_str(), data.size()));
+ auto reader = get_image_reader(data.c_str(), data.size());
width = reader->width();
height = reader->height();
img = ::std::unique_ptr<char[]>(new char[width * height * 4]());
diff --git a/platform/default/image_reader.cpp b/platform/default/image_reader.cpp
index 599ccb13a4..71b8e09918 100644
--- a/platform/default/image_reader.cpp
+++ b/platform/default/image_reader.cpp
@@ -1,3 +1,4 @@
+#include "mbgl/util/std.hpp"
#include "mbgl/util/image_reader.hpp"
#include "mbgl/util/png_reader.hpp"
#include "mbgl/util/jpeg_reader.hpp"
@@ -42,18 +43,18 @@ inline boost::optional<std::string> type_from_bytes(char const* data, size_t siz
return result_type();
}
-image_reader* get_image_reader(char const* data, size_t size)
+std::unique_ptr<image_reader> get_image_reader(char const* data, size_t size)
{
boost::optional<std::string> type = type_from_bytes(data,size);
if (type)
{
if (*type == "png")
{
- return new png_reader<boost::iostreams::array_source>(data, size);
+ return std::make_unique<png_reader<boost::iostreams::array_source>>(data, size);
}
else if (*type == "jpeg")
{
- return new jpeg_reader<boost::iostreams::array_source>(data, size);
+ return std::make_unique<jpeg_reader<boost::iostreams::array_source>>(data, size);
}
}
throw image_reader_exception("image_reader: can't determine type from input data");