diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-10-29 16:00:09 -0400 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-10-30 11:54:52 -0400 |
commit | 414ccaaf93fff1096086cd5c11acccc5cf5da7c3 (patch) | |
tree | 5ad7b540c3257ea6dc68f626145d7444c9ae86a0 /src | |
parent | b3e0f75e4aa90394c5a4bda845e9843ad953cc92 (diff) | |
download | qtlocation-mapboxgl-414ccaaf93fff1096086cd5c11acccc5cf5da7c3.tar.gz |
use unique_ptr for automatic deallocation
Diffstat (limited to 'src')
-rw-r--r-- | src/util/image.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/util/image.cpp b/src/util/image.cpp index ffa65bf0ba..bd5d7b8913 100644 --- a/src/util/image.cpp +++ b/src/util/image.cpp @@ -1,12 +1,17 @@ #include <mbgl/util/image.hpp> +#include <mbgl/util/std.hpp> #include <png.h> #include <cassert> #include <cstdlib> +#include <stdexcept> -std::string mbgl::util::compress_png(int width, int height, void *rgba, bool flip) { +namespace mbgl { +namespace util { + +std::string compress_png(int width, int height, void *rgba, bool flip) { png_voidp error_ptr = 0; png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, error_ptr, NULL, NULL); if (!png_ptr) { @@ -54,9 +59,6 @@ std::string mbgl::util::compress_png(int width, int height, void *rgba, bool fli } -using namespace mbgl::util; - - struct Buffer { Buffer(const std::string& data_) : data(data_.data()), length(data_.size()) {} @@ -139,9 +141,9 @@ Image::Image(const std::string &data, bool flip) { png_size_t rowbytes = png_get_rowbytes(png, info); assert(width * 4 == rowbytes); - img = static_cast<char*>(::operator new(width * height * 4)); + img = ::std::unique_ptr<char[]>(new char[width * height * 4]()); - char *surface = img; + char *surface = img.get(); assert(surface); struct ptrs { @@ -163,14 +165,12 @@ Image::Image(const std::string &data, bool flip) { fprintf(stderr, "loading PNG failed: %s\n", e.what()); png_destroy_read_struct(&png, &info, nullptr); if (img) { - ::operator delete(img); - img = nullptr; + img.reset(); } width = 0; height = 0; } } -Image::~Image() { - ::operator delete(img),img = nullptr; +} } |