This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository mapnik-vector-tile.
commit 1e0d82855e0b1ae2095ceee78600c57bf24c967c Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Fri Sep 11 22:55:09 2015 +0200 Imported Upstream version 0.8.3+dfsg --- CHANGELOG.md | 6 +++++ Makefile | 2 +- examples/c++/tileinfo.cpp | 42 ++++++++++++++++---------------- gyp/build.gyp | 8 ++++-- package.json | 2 +- src/vector_tile_backend_pbf.hpp | 1 + src/vector_tile_backend_pbf.ipp | 5 ++-- src/vector_tile_datasource.ipp | 5 ++++ src/vector_tile_geometry_decoder.hpp | 5 ++++ src/vector_tile_geometry_encoder.hpp | 47 +++++++++++++++++++++++++----------- src/vector_tile_processor.ipp | 8 +++--- src/vector_tile_util.ipp | 5 ++++ test/clipper_test.cpp | 5 ++-- test/encoding_util.hpp | 3 ++- test/test_utils.cpp | 11 ++++----- test/vector_tile.cpp | 13 +++++----- test/vector_tile_pbf.cpp | 7 +++++- 17 files changed, 112 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f40bc6..ad096c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.8.3 + + - Minor optimization in attribute encoding by using `emplace` instead of `insert` + - Now depends on `pbf_writer.hpp` for zigzag implementation (no change in behavior) + - Minor code cleanup to avoid unnecessary compiler warnings + ## 0.8.2 - Optimized coordinate transform that skips proj4 failures (#116) diff --git a/Makefile b/Makefile index a518b5a..58085e4 100755 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ MAPNIK_PLUGINDIR := $(shell mapnik-config --input-plugins) BUILDTYPE ?= Release -CLIPPER_REVISION=bfad32e +CLIPPER_REVISION=e0973e0802 PBF_REVISION=1df6453 GYP_REVISION=3464008 diff --git a/examples/c++/tileinfo.cpp b/examples/c++/tileinfo.cpp index 7a9ddca..fb1e532 100644 --- a/examples/c++/tileinfo.cpp +++ b/examples/c++/tileinfo.cpp @@ -83,16 +83,16 @@ int main(int argc, char** argv) } } if (!verbose) { - std::cout << "layers: " << tile.layers_size() << "\n"; - for (unsigned i=0;i<tile.layers_size();++i) + std::cout << "layers: " << static_cast<std::size_t>(tile.layers_size()) << "\n"; + for (std::size_t i=0;i<static_cast<std::size_t>(tile.layers_size());++i) { vector_tile::Tile_Layer const& layer = tile.layers(i); std::cout << layer.name() << ":\n"; std::cout << " version: " << layer.version() << "\n"; std::cout << " extent: " << layer.extent() << "\n"; - std::cout << " features: " << layer.features_size() << "\n"; - std::cout << " keys: " << layer.keys_size() << "\n"; - std::cout << " values: " << layer.values_size() << "\n"; + std::cout << " features: " << static_cast<std::size_t>(layer.features_size()) << "\n"; + std::cout << " keys: " << static_cast<std::size_t>(layer.keys_size()) << "\n"; + std::cout << " values: " << static_cast<std::size_t>(layer.values_size()) << "\n"; unsigned total_repeated = 0; unsigned num_commands = 0; unsigned num_move_to = 0; @@ -100,7 +100,7 @@ int main(int argc, char** argv) unsigned num_close = 0; unsigned num_empty = 0; unsigned degenerate = 0; - for (unsigned j=0;j<layer.features_size();++j) + for (std::size_t j=0;j<static_cast<std::size_t>(layer.features_size());++j) { vector_tile::Tile_Feature const & f = layer.features(j); total_repeated += f.geometry_size(); @@ -158,26 +158,26 @@ int main(int argc, char** argv) std::cout << " empty geoms: " << num_empty << "\n"; } } else { - for (unsigned i=0;i<tile.layers_size();++i) + for (std::size_t j=0;j<static_cast<std::size_t>(tile.layers_size());++j) { - vector_tile::Tile_Layer const& layer = tile.layers(i); + vector_tile::Tile_Layer const& layer = tile.layers(j); std::cout << "layer: " << layer.name() << "\n"; std::cout << " version: " << layer.version() << "\n"; std::cout << " extent: " << layer.extent() << "\n"; std::cout << " keys: "; - for (unsigned i=0;i<layer.keys_size();++i) + for (std::size_t k=0;k<static_cast<std::size_t>(layer.keys_size());++k) { - std::string const& key = layer.keys(i); + std::string const& key = layer.keys(k); std::cout << key; - if (i<layer.keys_size()-1) { + if (k<static_cast<std::size_t>(layer.keys_size())-1) { std::cout << ","; } } std::cout << "\n"; std::cout << " values: "; - for (unsigned i=0;i<layer.values_size();++i) + for (std::size_t l=0;l<static_cast<std::size_t>(layer.values_size());++l) { - vector_tile::Tile_Value const & value = layer.values(i); + vector_tile::Tile_Value const & value = layer.values(l); if (value.has_string_value()) { std::cout << value.string_value(); } else if (value.has_int_value()) { @@ -195,14 +195,14 @@ int main(int argc, char** argv) } else { std::cout << "null"; } - if (i<layer.values_size()-1) { + if (l<static_cast<std::size_t>(layer.values_size())-1) { std::cout << ","; } } std::cout << "\n"; - for (unsigned i=0;i<layer.features_size();++i) + for (std::size_t l=0;l<static_cast<std::size_t>(layer.features_size());++l) { - vector_tile::Tile_Feature const & feat = layer.features(i); + vector_tile::Tile_Feature const & feat = layer.features(l); std::cout << " feature: " << feat.id() << "\n"; std::cout << " type: "; unsigned feat_type = feat.type(); @@ -217,21 +217,21 @@ int main(int argc, char** argv) } std::cout << "\n"; std::cout << " tags: "; - for (unsigned j=0;j<feat.tags_size();++j) + for (std::size_t m=0;m<static_cast<std::size_t>(feat.tags_size());++m) { uint32_t tag = feat.tags(j); std::cout << tag; - if (j<feat.tags_size()-1) { + if (m<static_cast<std::size_t>(feat.tags_size())-1) { std::cout << ","; } } std::cout << "\n"; std::cout << " geometries: "; - for (unsigned j=0;j<feat.geometry_size();++j) + for (std::size_t m=0;m<static_cast<std::size_t>(feat.geometry_size());++m) { - uint32_t geom = feat.geometry(j); + uint32_t geom = feat.geometry(m); std::cout << geom; - if (j<feat.geometry_size()-1) { + if (m<static_cast<std::size_t>(feat.geometry_size())-1) { std::cout << ","; } } diff --git a/gyp/build.gyp b/gyp/build.gyp index 5b976bc..5f363e6 100644 --- a/gyp/build.gyp +++ b/gyp/build.gyp @@ -46,12 +46,16 @@ ], 'cflags_cc' : [ '-D_THREAD_SAFE', - '<!@(mapnik-config --cflags)' # assume protobuf headers are here + '<!@(mapnik-config --cflags)', # assume protobuf headers are here + '-Wno-sign-compare', + '-Wno-sign-conversion' ], 'xcode_settings': { 'OTHER_CPLUSPLUSFLAGS':[ '-D_THREAD_SAFE', - '<!@(mapnik-config --cflags)' # assume protobuf headers are here + '<!@(mapnik-config --cflags)', # assume protobuf headers are here + '-Wno-sign-compare', + '-Wno-sign-conversion' ], }, 'direct_dependent_settings': { diff --git a/package.json b/package.json index 66b7b07..311f840 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapnik-vector-tile", - "version": "0.8.2", + "version": "0.8.3", "description": "Mapnik vector tile API", "main": "./package.json", "repository" : { diff --git a/src/vector_tile_backend_pbf.hpp b/src/vector_tile_backend_pbf.hpp index 05c2bbe..3198e19 100644 --- a/src/vector_tile_backend_pbf.hpp +++ b/src/vector_tile_backend_pbf.hpp @@ -4,6 +4,7 @@ // vector tile #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" #pragma GCC diagnostic pop diff --git a/src/vector_tile_backend_pbf.ipp b/src/vector_tile_backend_pbf.ipp index 8b1792d..ee285c0 100644 --- a/src/vector_tile_backend_pbf.ipp +++ b/src/vector_tile_backend_pbf.ipp @@ -7,6 +7,7 @@ // vector tile #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" #pragma GCC diagnostic pop @@ -110,7 +111,7 @@ void backend_pbf::start_tile_feature(mapnik::feature_impl const& feature) // The key doesn't exist yet in the dictionary. current_layer_->add_keys(name.c_str(), name.length()); size_t index = keys_.size(); - keys_.insert(keys_container::value_type(name, index)); + keys_.emplace(name, index); current_feature_->add_tags(index); } else @@ -126,7 +127,7 @@ void backend_pbf::start_tile_feature(mapnik::feature_impl const& feature) to_tile_value visitor(current_layer_->add_values()); mapnik::util::apply_visitor(visitor, val); size_t index = values_.size(); - values_.insert(values_container::value_type(val, index)); + values_.emplace(val, index); current_feature_->add_tags(index); } else diff --git a/src/vector_tile_datasource.ipp b/src/vector_tile_datasource.ipp index 3ee0dc4..994a46a 100644 --- a/src/vector_tile_datasource.ipp +++ b/src/vector_tile_datasource.ipp @@ -1,4 +1,9 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" +#pragma GCC diagnostic pop + #include "vector_tile_projection.hpp" #include "vector_tile_geometry_decoder.hpp" diff --git a/src/vector_tile_geometry_decoder.hpp b/src/vector_tile_geometry_decoder.hpp index c0f1510..1a5d9da 100644 --- a/src/vector_tile_geometry_decoder.hpp +++ b/src/vector_tile_geometry_decoder.hpp @@ -1,7 +1,12 @@ #ifndef __MAPNIK_VECTOR_TILE_GEOMETRY_DECODER_H__ #define __MAPNIK_VECTOR_TILE_GEOMETRY_DECODER_H__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" +#pragma GCC diagnostic pop + #include "pbf_reader.hpp" #include <mapnik/util/is_clockwise.hpp> diff --git a/src/vector_tile_geometry_encoder.hpp b/src/vector_tile_geometry_encoder.hpp index dd95f8e..a4aae3d 100644 --- a/src/vector_tile_geometry_encoder.hpp +++ b/src/vector_tile_geometry_encoder.hpp @@ -2,9 +2,16 @@ #define __MAPNIK_VECTOR_TILE_GEOMETRY_ENCODER_H__ // vector tile +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" +#pragma GCC diagnostic pop + #include <mapnik/geometry.hpp> #include "vector_tile_config.hpp" +#include "pbf_writer.hpp" + #include <cstdlib> #include <cmath> #include <sstream> @@ -21,20 +28,29 @@ inline unsigned encode_geometry(mapnik::geometry::point<std::int64_t> const& pt, int32_t dx = pt.x - start_x; int32_t dy = pt.y - start_y; // Manual zigzag encoding. - current_feature.add_geometry((static_cast<unsigned>(dx) << 1) ^ (dx >> 31)); - current_feature.add_geometry((static_cast<unsigned>(dy) << 1) ^ (dy >> 31)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dx)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dy)); start_x = pt.x; start_y = pt.y; return 1; } +inline unsigned encode_length(unsigned len) +{ + return (len << 3u) | 2u; +} + inline unsigned encode_geometry(mapnik::geometry::line_string<std::int64_t> const& line, vector_tile::Tile_Feature & current_feature, int32_t & start_x, int32_t & start_y) { - const int cmd_bits = 3; - int32_t line_to_length = static_cast<int32_t>(line.size()) - 1; + std::size_t line_size = line.size(); + if (line_size <= 0) + { + return 0; + } + unsigned line_to_length = static_cast<unsigned>(line_size) - 1; enum { move_to = 1, @@ -52,13 +68,13 @@ inline unsigned encode_geometry(mapnik::geometry::line_string<std::int64_t> cons else if (status == line_to) { status = coords; - current_feature.add_geometry((line_to_length << cmd_bits) | 2); // len | (line_to << 3) + current_feature.add_geometry(encode_length(line_to_length)); } int32_t dx = pt.x - start_x; int32_t dy = pt.y - start_y; // Manual zigzag encoding. - current_feature.add_geometry((static_cast<unsigned>(dx) << 1) ^ (dx >> 31)); - current_feature.add_geometry((static_cast<unsigned>(dy) << 1) ^ (dy >> 31)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dx)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dy)); start_x = pt.x; start_y = pt.y; } @@ -70,10 +86,13 @@ inline unsigned encode_geometry(mapnik::geometry::linear_ring<std::int64_t> cons int32_t & start_x, int32_t & start_y) { - if (ring.size() < 3) return 0; - const int cmd_bits = 3; - int32_t line_to_length = static_cast<int32_t>(ring.size()) - 1; - int count = 0; + std::size_t ring_size = ring.size(); + if (ring_size < 3) + { + return 0; + } + unsigned line_to_length = static_cast<unsigned>(ring_size) - 1; + unsigned count = 0; enum { move_to = 1, line_to = 2, @@ -100,7 +119,7 @@ inline unsigned encode_geometry(mapnik::geometry::linear_ring<std::int64_t> cons else if (status == line_to) { status = coords; - current_feature.add_geometry((line_to_length<< cmd_bits) | 2); // len | (line_to << 3) + current_feature.add_geometry(encode_length(line_to_length)); } else if (drop_last && count == line_to_length + 1) { @@ -109,8 +128,8 @@ inline unsigned encode_geometry(mapnik::geometry::linear_ring<std::int64_t> cons int32_t dx = pt.x - start_x; int32_t dy = pt.y - start_y; // Manual zigzag encoding. - current_feature.add_geometry((static_cast<unsigned>(dx) << 1) ^ (dx >> 31)); - current_feature.add_geometry((static_cast<unsigned>(dy) << 1) ^ (dy >> 31)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dx)); + current_feature.add_geometry(mapbox::util::pbf_writer::encode_zigzag32(dy)); start_x = pt.x; start_y = pt.y; ++count; diff --git a/src/vector_tile_processor.ipp b/src/vector_tile_processor.ipp index 27f7368..31ea8bf 100644 --- a/src/vector_tile_processor.ipp +++ b/src/vector_tile_processor.ipp @@ -28,9 +28,6 @@ #include <mapnik/geometry_adapters.hpp> #include <mapnik/geometry_transform.hpp> -// agg -#include "agg_path_storage.h" - // http://www.angusj.com/delphi/clipper.php #include "clipper.hpp" @@ -51,6 +48,7 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" #pragma GCC diagnostic pop @@ -861,7 +859,7 @@ struct encoder_visitor { buffered_query_ext_(buffered_query_ext), area_threshold_(area_threshold) {} - unsigned operator() (mapnik::geometry::geometry_empty const& geom) + unsigned operator() (mapnik::geometry::geometry_empty const&) { return 0; } @@ -1222,7 +1220,7 @@ struct simplify_visitor { return count; } - unsigned operator() (mapnik::geometry::geometry_empty const& geom) + unsigned operator() (mapnik::geometry::geometry_empty const&) { return 0; } diff --git a/src/vector_tile_util.ipp b/src/vector_tile_util.ipp index 807659c..f7dfe44 100644 --- a/src/vector_tile_util.ipp +++ b/src/vector_tile_util.ipp @@ -1,4 +1,9 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "vector_tile.pb.h" +#pragma GCC diagnostic pop + #include <mapnik/vertex.hpp> #include <mapnik/box2d.hpp> #include <mapnik/geometry.hpp> diff --git a/test/clipper_test.cpp b/test/clipper_test.cpp index d06b2bc..e3ae16a 100644 --- a/test/clipper_test.cpp +++ b/test/clipper_test.cpp @@ -22,7 +22,7 @@ TEST_CASE( "vector_tile_strategy", "should not overflow" ) { { mapnik::vector_tile_impl::vector_tile_strategy vs(prj_trans, tr, 16); // even an invalid point is not expected to result in values beyond hirange - mapnik::geometry::point<std::int64_t> g(-20037508.342789*2,-20037508.342789*2); + mapnik::geometry::point<double> g(-20037508.342789*2.0,-20037508.342789*2.0); mapnik::geometry::geometry<std::int64_t> new_geom = mapnik::geometry::transform<std::int64_t>(g, vs); REQUIRE( new_geom.is<mapnik::geometry::point<std::int64_t>>() ); auto const& pt = mapnik::util::get<mapnik::geometry::point<std::int64_t>>(new_geom); @@ -32,7 +32,7 @@ TEST_CASE( "vector_tile_strategy", "should not overflow" ) { REQUIRE( (-pt.y < ClipperLib::hiRange) ); } merc_tiler.xyz(0,0,0,minx,miny,maxx,maxy); - mapnik::geometry::polygon<std::int64_t> g; + mapnik::geometry::polygon<double> g; g.exterior_ring.add_coord(minx,miny); g.exterior_ring.add_coord(maxx,miny); g.exterior_ring.add_coord(maxx,maxy); @@ -73,7 +73,6 @@ TEST_CASE( "vector_tile_strategy", "should not overflow" ) { )); } } - } TEST_CASE( "clipper IntPoint", "should accept 64bit values" ) { diff --git a/test/encoding_util.hpp b/test/encoding_util.hpp index 5568c48..98b9fda 100644 --- a/test/encoding_util.hpp +++ b/test/encoding_util.hpp @@ -16,8 +16,9 @@ struct print std::cerr << "EMPTY" << std::endl; } template <typename T> - void operator() (geometry_collection<T> const& collection) const + void operator() (geometry_collection<T> const&) const { + std::cerr << "COLLECTION" << std::endl; } template <typename T> void operator() (T const& geom) const diff --git a/test/test_utils.cpp b/test/test_utils.cpp index b156662..02c2012 100644 --- a/test/test_utils.cpp +++ b/test/test_utils.cpp @@ -42,12 +42,11 @@ std::shared_ptr<mapnik::memory_datasource> build_ds(double x,double y, bool seco ds->push(feature); if (second) { ctx->push("name2"); - mapnik::feature_ptr feature(mapnik::feature_factory::create(ctx,1)); - mapnik::transcoder tr("utf-8"); - feature->put("name",tr.transcode("null island")); - feature->put("name2",tr.transcode("null island 2")); - feature->set_geometry(mapnik::geometry::point<double>(x+1,y+1)); - ds->push(feature); + mapnik::feature_ptr feature2(mapnik::feature_factory::create(ctx,1)); + feature2->put("name",tr.transcode("null island")); + feature2->put("name2",tr.transcode("null island 2")); + feature2->set_geometry(mapnik::geometry::point<double>(x+1,y+1)); + ds->push(feature2); } return ds; } diff --git a/test/vector_tile.cpp b/test/vector_tile.cpp index 886c6f7..00ee133 100644 --- a/test/vector_tile.cpp +++ b/test/vector_tile.cpp @@ -33,6 +33,7 @@ // vector input api #include "vector_tile_datasource.hpp" +#include "pbf_writer.hpp" /* TEST_CASE( "vector tile negative id", "hmm" ) { @@ -306,7 +307,7 @@ TEST_CASE( "vector tile datasource", "should filter features outside extent" ) { std::string key(""); CHECK(false == mapnik::vector_tile_impl::is_solid_extent(tile,key)); CHECK("" == key); - CHECK(1 == tile.layers_size()); + REQUIRE(1 == tile.layers_size()); vector_tile::Tile_Layer const& layer = tile.layers(0); CHECK(std::string("layer") == layer.name()); CHECK(1 == layer.features_size()); @@ -430,7 +431,7 @@ TEST_CASE( "encoding multi line as one path", "should maintain second move_to co std::string key(""); CHECK(false == mapnik::vector_tile_impl::is_solid_extent(tile,key)); CHECK("" == key); - CHECK(1 == tile.layers_size()); + REQUIRE(1 == tile.layers_size()); vector_tile::Tile_Layer const& layer = tile.layers(0); CHECK(1 == layer.features_size()); vector_tile::Tile_Feature const& f = layer.features(0); @@ -499,7 +500,7 @@ TEST_CASE( "encoding single line 1", "should maintain start/end vertex" ) { std::string key(""); CHECK(false == mapnik::vector_tile_impl::is_solid_extent(tile,key)); CHECK("" == key); - CHECK(1 == tile.layers_size()); + REQUIRE(1 == tile.layers_size()); vector_tile::Tile_Layer const& layer = tile.layers(0); CHECK(1 == layer.features_size()); vector_tile::Tile_Feature const& f = layer.features(0); @@ -530,7 +531,7 @@ TEST_CASE( "encoding single line 1", "should maintain start/end vertex" ) { // 5th and 6th are the x,y of the first line_to command // due zigzag encoding the 2,2 should be 4,4 // delta encoding has no impact since the previous coordinate was 0,0 - unsigned four = (2 << 1) ^ (2 >> 31); + unsigned four = mapbox::util::pbf_writer::encode_zigzag32(2u); CHECK(4 == four); CHECK(4 == f.geometry(4)); CHECK(4 == f.geometry(5)); @@ -576,7 +577,7 @@ TEST_CASE( "encoding single line 2", "should maintain start/end vertex" ) { std::string key(""); CHECK(false == mapnik::vector_tile_impl::is_solid_extent(tile,key)); CHECK("" == key); - CHECK(1 == tile.layers_size()); + REQUIRE(1 == tile.layers_size()); vector_tile::Tile_Layer const& layer = tile.layers(0); CHECK(1 == layer.features_size()); vector_tile::Tile_Feature const& f = layer.features(0); @@ -952,7 +953,7 @@ TEST_CASE( "vector tile from simplified geojson", "should create vector tile wit renderer_type ren(backend,map,m_req); ren.apply(); CHECK( ren.painted() == true ); - CHECK(1 == tile.layers_size()); + REQUIRE(1 == tile.layers_size()); vector_tile::Tile_Layer const& layer = tile.layers(0); CHECK(std::string("layer") == layer.name()); CHECK(1 == layer.features_size()); diff --git a/test/vector_tile_pbf.cpp b/test/vector_tile_pbf.cpp index a74f93b..47e8bf0 100644 --- a/test/vector_tile_pbf.cpp +++ b/test/vector_tile_pbf.cpp @@ -1,5 +1,9 @@ #include "catch.hpp" +// override pbf_assert to disable assertions and allow +// all tests below to check exceptions even in Debug mode +#define pbf_assert(x) + // test utils #include "test_utils.hpp" #include <mapnik/memory_datasource.hpp> @@ -34,6 +38,7 @@ // vector input api #include "vector_tile_datasource.hpp" #include "vector_tile_datasource_pbf.hpp" + #include "pbf_reader.hpp" #include <string> @@ -355,7 +360,7 @@ TEST_CASE( "pbf decoding some truncated buffers", "should throw exception" ) { // it off at a point that would be valid anyway. std::string buffer; tile.SerializeToString(&buffer); - for (int i=1; i< buffer.size(); i++) + for (std::size_t i=1; i< buffer.size(); ++i) { CHECK_THROWS({ mapbox::util::pbf pbf_tile(buffer.c_str(), i); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mapnik-vector-tile.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel