diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-06-20 23:34:35 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-06-21 10:29:15 +0300 |
commit | b06176cf116eefb821f9d51c89c9c6bad6b67d41 (patch) | |
tree | 0370b9a885bfb326cddab808068c8a7b4a83831f /platform/default | |
parent | 77f309e7a07e248b4e9460e3e38b6b76f95f0dc9 (diff) | |
download | qtlocation-mapboxgl-b06176cf116eefb821f9d51c89c9c6bad6b67d41.tar.gz |
[core] Replace boost iostream with standard {i,s}stream
Fixes #4915.
Diffstat (limited to 'platform/default')
-rw-r--r-- | platform/default/jpeg_reader.cpp | 31 | ||||
-rw-r--r-- | platform/default/png_reader.cpp | 20 |
2 files changed, 16 insertions, 35 deletions
diff --git a/platform/default/jpeg_reader.cpp b/platform/default/jpeg_reader.cpp index 08b6c299d6..bb99aab55c 100644 --- a/platform/default/jpeg_reader.cpp +++ b/platform/default/jpeg_reader.cpp @@ -1,14 +1,8 @@ #include <mbgl/util/image.hpp> -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunknown-pragmas" -#pragma GCC diagnostic ignored "-Wunused-local-typedefs" -#pragma GCC diagnostic ignored "-Wshadow" -#include <boost/iostreams/stream.hpp> -#pragma GCC diagnostic pop - -#include <boost/iostreams/device/file.hpp> -#include <boost/iostreams/device/array.hpp> +#include <istream> +#include <sstream> +#include <array> extern "C" { @@ -17,27 +11,24 @@ extern "C" namespace mbgl { -using source_type = boost::iostreams::array_source; -using input_stream = boost::iostreams::stream<source_type>; - const static unsigned BUF_SIZE = 4096; struct jpeg_stream_wrapper { jpeg_source_mgr manager; - input_stream * stream; - JOCTET buffer[BUF_SIZE]; + std::istream* stream; + std::array<JOCTET, BUF_SIZE> buffer; }; static void init_source(j_decompress_ptr cinfo) { jpeg_stream_wrapper* wrap = reinterpret_cast<jpeg_stream_wrapper*>(cinfo->src); - wrap->stream->seekg(0,std::ios_base::beg); + wrap->stream->seekg(0); } static boolean fill_input_buffer(j_decompress_ptr cinfo) { jpeg_stream_wrapper* wrap = reinterpret_cast<jpeg_stream_wrapper*>(cinfo->src); - wrap->stream->read(reinterpret_cast<char*>(&wrap->buffer[0]),BUF_SIZE); + wrap->stream->read(reinterpret_cast<char*>(&wrap->buffer[0]), BUF_SIZE); std::streamsize size = wrap->stream->gcount(); - wrap->manager.next_input_byte = wrap->buffer; + wrap->manager.next_input_byte = wrap->buffer.data(); wrap->manager.bytes_in_buffer = BUF_SIZE; return (size > 0) ? TRUE : FALSE; } @@ -62,7 +53,7 @@ static void skip(j_decompress_ptr cinfo, long count) { static void term(j_decompress_ptr) {} -static void attach_stream(j_decompress_ptr cinfo, input_stream* in) { +static void attach_stream(j_decompress_ptr cinfo, std::istream* in) { if (cinfo->src == nullptr) { cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(jpeg_stream_wrapper)); @@ -98,8 +89,8 @@ struct jpeg_info_guard { }; PremultipliedImage decodeJPEG(const uint8_t* data, size_t size) { - source_type source(reinterpret_cast<const char*>(data), size); - input_stream stream(source); + std::istringstream source(std::string(reinterpret_cast<const char*>(data), size)); + std::istream stream(source.rdbuf()); jpeg_decompress_struct cinfo; jpeg_info_guard iguard(&cinfo); diff --git a/platform/default/png_reader.cpp b/platform/default/png_reader.cpp index 3d1165b13f..e3f6fdef49 100644 --- a/platform/default/png_reader.cpp +++ b/platform/default/png_reader.cpp @@ -2,15 +2,8 @@ #include <mbgl/util/premultiply.hpp> #include <mbgl/platform/log.hpp> -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunknown-pragmas" -#pragma GCC diagnostic ignored "-Wunused-local-typedefs" -#pragma GCC diagnostic ignored "-Wshadow" -#include <boost/iostreams/stream.hpp> -#pragma GCC diagnostic pop - -#include <boost/iostreams/device/file.hpp> -#include <boost/iostreams/device/array.hpp> +#include <istream> +#include <sstream> extern "C" { @@ -19,9 +12,6 @@ extern "C" namespace mbgl { -using source_type = boost::iostreams::array_source; -using input_stream = boost::iostreams::stream<source_type>; - static void user_error_fn(png_structp, png_const_charp error_msg) { throw std::runtime_error(std::string("failed to read invalid png: '") + error_msg + "'"); } @@ -31,7 +21,7 @@ static void user_warning_fn(png_structp, png_const_charp warning_msg) { } static void png_read_data(png_structp png_ptr, png_bytep data, png_size_t length) { - input_stream * fin = reinterpret_cast<input_stream*>(png_get_io_ptr(png_ptr)); + std::istream* fin = reinterpret_cast<std::istream*>(png_get_io_ptr(png_ptr)); fin->read(reinterpret_cast<char*>(data), length); std::streamsize read_count = fin->gcount(); if (read_count < 0 || static_cast<png_size_t>(read_count) != length) @@ -54,8 +44,8 @@ struct png_struct_guard { }; PremultipliedImage decodePNG(const uint8_t* data, size_t size) { - source_type source(reinterpret_cast<const char*>(data), size); - input_stream stream(source); + std::istringstream source(std::string(reinterpret_cast<const char*>(data), size)); + std::istream stream(source.rdbuf()); png_byte header[8] = { 0 }; stream.read(reinterpret_cast<char*>(header), 8); |