This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository libosmium.
commit b0e9f10859eef73c46648b38335d838b1dfffbeb Merge: ecea6d3 3f8c266 Author: Bas Couwenberg <[email protected]> Date: Sun Jun 18 12:02:14 2017 +0200 Merge branch 'experimental' Conflicts: CHANGELOG.md CMakeLists.txt debian/changelog include/osmium/area/assembler.hpp include/osmium/io/reader.hpp include/osmium/memory/buffer.hpp include/osmium/tags/filter.hpp include/osmium/version.hpp test/t/memory/test_buffer_basics.cpp CHANGELOG.md | 123 +- CMakeLists.txt | 25 +- appveyor.yml | 5 + benchmarks/CMakeLists.txt | 1 + build-appveyor.bat | 3 +- cmake/FindOsmium.cmake | 18 + debian/changelog | 45 +- debian/control | 2 +- debian/gbp.conf | 2 +- examples/CMakeLists.txt | 1 + examples/osmium_change_tags.cpp | 2 +- examples/osmium_dump_internal.cpp | 2 +- examples/osmium_index_lookup.cpp | 6 +- include/osmium/area/assembler.hpp | 1359 +----------- include/osmium/area/assembler_config.hpp | 152 ++ include/osmium/area/detail/basic_assembler.hpp | 1206 +++++++++++ include/osmium/area/detail/node_ref_segment.hpp | 2 +- include/osmium/area/detail/proto_ring.hpp | 18 +- include/osmium/area/detail/segment_list.hpp | 43 +- include/osmium/area/detail/vector.hpp | 2 +- include/osmium/area/geom_assembler.hpp | 131 ++ include/osmium/area/multipolygon_collector.hpp | 1 + include/osmium/area/problem_reporter.hpp | 17 + include/osmium/area/problem_reporter_exception.hpp | 48 +- include/osmium/area/problem_reporter_ogr.hpp | 28 +- include/osmium/area/problem_reporter_stream.hpp | 10 + include/osmium/area/stats.hpp | 8 +- include/osmium/builder/builder_helper.hpp | 6 +- include/osmium/geom/factory.hpp | 2 +- include/osmium/geom/mercator_projection.hpp | 6 +- include/osmium/geom/projection.hpp | 54 +- include/osmium/handler/check_order.hpp | 41 +- include/osmium/handler/node_locations_for_ways.hpp | 14 +- include/osmium/index/id_set.hpp | 1 + include/osmium/index/map/dense_file_array.hpp | 4 + include/osmium/index/map/dense_mem_array.hpp | 4 + include/osmium/index/map/dense_mmap_array.hpp | 4 + include/osmium/index/map/sparse_file_array.hpp | 4 + include/osmium/index/map/sparse_mem_array.hpp | 4 + include/osmium/index/map/sparse_mem_map.hpp | 4 + include/osmium/index/map/sparse_mem_table.hpp | 26 +- include/osmium/index/map/sparse_mmap_array.hpp | 4 + include/osmium/index/node_locations_map.hpp | 2 + .../{map/dense_mem_array.hpp => nwr_array.hpp} | 30 +- include/osmium/index/relations_map.hpp | 280 ++- include/osmium/io/detail/input_format.hpp | 53 +- include/osmium/io/detail/o5m_input_format.hpp | 14 +- include/osmium/io/detail/opl_input_format.hpp | 14 +- include/osmium/io/detail/pbf_input_format.hpp | 16 +- include/osmium/io/detail/pbf_output_format.hpp | 1 - include/osmium/io/detail/protobuf_tags.hpp | 2 +- include/osmium/io/detail/string_util.hpp | 2 +- include/osmium/io/detail/write_thread.hpp | 2 +- include/osmium/io/detail/xml_input_format.hpp | 20 +- include/osmium/io/detail/xml_output_format.hpp | 1 - include/osmium/io/file_compression.hpp | 9 +- include/osmium/io/file_format.hpp | 9 +- include/osmium/io/reader.hpp | 54 +- include/osmium/io/writer.hpp | 31 +- include/osmium/memory/buffer.hpp | 9 +- include/osmium/object_pointer_collection.hpp | 25 +- include/osmium/osm/crc.hpp | 2 +- include/osmium/osm/item_type.hpp | 21 +- include/osmium/relations/collector.hpp | 16 +- include/osmium/tags/filter.hpp | 37 +- include/osmium/tags/matcher.hpp | 132 ++ include/osmium/tags/regex_filter.hpp | 5 +- include/osmium/tags/taglist.hpp | 13 +- include/osmium/tags/tags_filter.hpp | 154 ++ include/osmium/thread/function_wrapper.hpp | 2 +- include/osmium/thread/pool.hpp | 2 +- include/osmium/thread/util.hpp | 2 +- include/osmium/util/file.hpp | 13 +- include/osmium/util/memory_mapping.hpp | 10 +- include/osmium/util/options.hpp | 5 +- include/osmium/util/string_matcher.hpp | 429 ++++ include/osmium/version.hpp | 6 +- test/CMakeLists.txt | 7 + test/data-tests/CMakeLists.txt | 10 +- test/data-tests/multipolygon.qgs | 2089 ++++++++++-------- test/data-tests/testcases/test-100.cpp | 23 +- test/data-tests/testcases/test-101.cpp | 22 +- test/data-tests/testcases/test-110.cpp | 19 +- test/data-tests/testdata-xml.cpp | 669 +++--- test/include/catch.hpp | 2261 +++++++++++++------- test/t/area/test_assembler.cpp | 143 ++ test/t/area/test_node_ref_segment.cpp | 65 +- test/t/geom/test_projection.cpp | 46 +- test/t/index/test_relations_map.cpp | 68 +- test/t/io/test_compression_factory.cpp | 11 +- test/t/io/test_opl_parser.cpp | 153 +- test/t/io/test_reader.cpp | 76 +- test/t/io/test_reader_with_mock_parser.cpp | 14 +- test/t/io/test_writer.cpp | 6 +- test/t/io/test_writer_with_mock_compression.cpp | 12 +- test/t/io/test_writer_with_mock_encoder.cpp | 14 +- test/t/memory/test_buffer_basics.cpp | 5 + test/t/osm/test_location.cpp | 8 +- test/t/tags/test_tag_list.cpp | 17 +- test/t/tags/test_tag_matcher.cpp | 93 + test/t/tags/test_tags_filter.cpp | 79 + test/t/util/test_cast_with_assert.cpp | 115 +- test/t/util/test_delta.cpp | 44 +- test/t/util/test_double.cpp | 51 +- test/t/util/test_memory_mapping.cpp | 546 +++-- test/t/util/test_minmax.cpp | 81 +- test/t/util/test_options.cpp | 2 - test/t/util/test_string.cpp | 94 +- test/t/util/test_string_matcher.cpp | 156 ++ 109 files changed, 7445 insertions(+), 4415 deletions(-) diff --cc CHANGELOG.md index cc1fdcc,a7ddcc3..57d05bb --- a/CHANGELOG.md +++ b/CHANGELOG.md @@@ -23,20 -12,122 +23,135 @@@ This project adheres to [Semantic Versi ### Fixed +- Use minimum size of 64 bytes for buffers. This fixes an infinite loop + when buffer size is zero. + + +## [2.11.1] - 2017-03-07 + +### Fixed + +- Terminate called on full non-auto-growing buffer. (Issue #189.) +- When file formats were used that were not compiled into the binary, it + terminated instead of throwing. (Issue #197.) +- The `Filter::count()` method didn't compile at all. + + ## [2.12.2] - 2017-05-3 + + ### Added + + - Add two argument (key, value) overload of `TagMatcher::operator()`. + + ### Changed + + - Detect, report, and remove duplicate ways in multipolygon relations. + - Change EOF behaviour of Reader: The `Reader::read()` function will now + always return an invalid buffer exactly once to signal EOF. + - Update QGIS multipolygon project that is part of the test suite to show + more problem types. + - Copy multipolygon QGIS file for tests to build dir in cmake step. + - Some code cleanups and improved debug output in multipolygon code. + - Refactor I/O code to simplify code. + - Disable some warnings on MSVC. + - Various small code and build script changes. + + ### Fixed + + - Two bugs in area assembler affecting very complex multipolygons and + multipolygons with overlapping or nearly overlapping lines. + - Invalid use of iterators leading to undefined behaviour in area assembler + code. + - Area assembler stats were not correctly counting inner rings that are + areas in their own right. + - Fix a thread problem valgrind found that might or might not be real. + - Read OPL file correctly even if trailing newline in file is missing. + - Include order for `osmium/index/map` headers and + `osmium/index/node_locations_map.hpp` (or + `osmium/handler/node_locations_for_ways.hpp`) doesn't matter any more. + + + ## [2.12.1] - 2017-04-10 + + ### Added + + - New `TagsFilter::set_default_result()` function. + + ### Changed + + - Use larger capacity for `Buffer` if necessary for alignment instead of + throwing an exception. Minimum buffer size is now 64 bytes. + - Check order of input data in relations collector. The relations collector + can not deal with history data or a changes file. This was documented as a + requirement, but often lead to problems, because this was ignored by users. + So it now checks that the input data it gets is ordered and throws an + exception otherwise. + - When writing an OSM file, set generator to libosmium if not set by app. + + ### Fixed + + - Infinite loop in `Buffer::reserve_space()`. (Issue #202.) + - `ObjectPointerCollection::unique()` now removes elements at end. + - Tests comparing double using `==` operator. + - Build on Cygwin. + + + ## [2.12.0] - 2017-03-07 + + ### Added + + - `TagMatcher` and `TagsFilter` classes for more flexibly matching tags and + selecting objects based on tags. This obsoletes the less flexible classes + based on `osmium::tags::Filter` classes. + - Extended `index::RelationsMap(Stash|Index)` classes to also allow + parent-to-member lookups. + - New `nrw_array` helper class. + - `ObjectPointerCollection::unique()` function. + + ### Changed + + - Area assembler can now detect invalid locations and report them in the + stats and through the problem reporter. If the new config option + `ignore_invalid_locations` is set, the Assembler will pretend they weren't + even referenced in the ways. (Issue #195.) + - `osmium::area::Assembler::operator()` will now return a boolean reporting + whether building of the area(s) was successful. + - Split up area `Assembler` class into three classes: The + `detail::BasicAssembler` is now the parent class. `Assembler` is the child + class for usual use. The new `GeomAssembler` also derives from + `BasicAssembler` and builds areas without taking tags into account at all. + This is to support osm2pgsql which does tag handling itself. (Issue #194.) + - The `Projection` class can do any projection supported by the Proj.4 + library. As a special case it now uses our own Mercator projection + functions when the web mercator projection (EPSG 3857) is used. This is + much faster than going through Proj.4. + - Better error messages for low-level file utility functions. + - Mark `build_tag_list*` functions in `builder_helper.hpp` as deprecated. You + should use the functions from `osmium/builder/attr.hpp` instead. + - Improved performance of the `osmium::tags::match_(any|all|none)_of` + functions. + - Improved performance of string comparison in `tags::Filter`. + - Update version of Catch unit test framework to 1.8.1. This meant some + tests had to be updated. + - Use `get_noexcept()` in `NodeLocationsForWays` handler. + - And lots of code and test cleanups... + + ### Fixed + + - Terminate called on full non-auto-growing buffer. (Issue #189.) + - When file formats were used that were not compiled into the binary, it + terminated instead of throwing. (Issue #197.) + - Windows build problem related to including two different winsock versions. + - Windows build problem related to forced build for old Windows versions. + (Issue #196.) + - Clear stream contents in ProblemReporterException correctly. + - Add `-pthread` compiler and linker options on Linux/OSX. This should fix + a problem where some linker versions will not link binaries correctly when + the `--as-needed` option is used. + - The `Filter::count()` method didn't compile at all. + - XML reader doesn't fail on relation member ref=0 any more. + + ## [2.11.0] - 2017-01-14 ### Added -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/libosmium.git _______________________________________________ Pkg-grass-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

