diff options
-rw-r--r-- | include/mbgl/util/image_reader.hpp | 2 | ||||
-rw-r--r-- | platform/default/image.cpp | 2 | ||||
-rw-r--r-- | platform/default/image_reader.cpp | 7 |
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 5922d6033f..ca8b103486 100644 --- a/platform/default/image.cpp +++ b/platform/default/image.cpp @@ -77,7 +77,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"); |