diff --git a/include/mbgl/util/image_reader.hpp b/include/mbgl/util/image_reader.hpp index 589653ec5..4bdaf420f 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 get_image_reader(char const* data, size_t size); }} diff --git a/platform/default/image.cpp b/platform/default/image.cpp index 9a76ef33f..8d0374c64 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 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(new char[width * height * 4]()); diff --git a/platform/default/image_reader.cpp b/platform/default/image_reader.cpp index 599ccb13a..71b8e0991 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 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 get_image_reader(char const* data, size_t size) { boost::optional type = type_from_bytes(data,size); if (type) { if (*type == "png") { - return new png_reader(data, size); + return std::make_unique>(data, size); } else if (*type == "jpeg") { - return new jpeg_reader(data, size); + return std::make_unique>(data, size); } } throw image_reader_exception("image_reader: can't determine type from input data");