All Versions
26
Latest Version
Avg Release Cycle
93 days
Latest Release
369 days ago

Changelog History
Page 2

  • v1.5.3 Changes

    September 22, 2017

    โž• Added

    • ๐Ÿ“š More documentation.
    • ๐Ÿ†• New size() method on iterator range used for packed repeated fields to find out how many elements there are in the range. This is much faster compared to the std::difference() call you had to do before, because the varints don't have to be fully decoded. See [Advanced Topics](doc/advanced.md) for details.

    ๐Ÿ”„ Changed

    • โšก๏ธ Updated clang-tidy settings in Makefiles and fixed a lot of minor issues reported by clang-tidy.
    • โšก๏ธ Update included catch.hpp to version 1.10.0.
    • Miscellaneous code cleanups.
    • Support for invalid state in pbf_writer and packed_repeated_fields. This fixes move construction and move assignement in pbf_writer and disables the copy construction and copy assignement which don't have clear semantics. It introduces an invalid or empty state in the pbf_writer, pbf_builder, and packed_repeated_fields classes used for default-constructed, moved from, or committed objects. There is a new commit() function for pbf_writer and the packed_repeated_fields which basically does the same as the destructor but can be called explicitly.

    ๐Ÿ›  Fixed

    • The empty() method of the iterator range now returns a bool instead of a size_t.
  • v1.5.2 Changes

    June 30, 2017

    โž• Added

    • โž• Add missing two-parameter version of pbf_message::next() function.
    • โž• Add data_view::empty() function.
    • Add missing versions of add_bytes(), add_string(), and add_message() to pbf_builder.

    ๐Ÿ”„ Changed

    • Clarify include file usage in tutorial.
    • โšก๏ธ Updated included Catch unit test framework to version 1.9.6 and updated tests to work with the current version.
    • ๐Ÿ‘‰ Make some constructors explicit (best practice to avoid silent conversions).

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Important bugfix in data_view equality operator. The equality operator is actually never used in the protozero code itself, but users of protozero might use it. This is a serious bug that could lead to buffer overrun type problems.
  • v1.5.1 Changes

    January 14, 2017

    โž• Added

    • Better documentation for tag_and_type() in doc/advanced.md.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed broken "make doc" build.
  • v1.5.0 Changes

    January 12, 2017

    โž• Added

    • Add add_bytes_vectored() methods to pbf_writer and pbf_builder. This allows single-copy scatter-gather type adding of data that has been prepared in pieces to a protobuf message.
    • ๐Ÿ†• New functions to check the tag and wire type at the same time: Two parameter version of pbf_reader::next() and pbf_reader::tag_and_type() can be used together with the free function tag_and_type() to easily and quickly check that not only the tag but also the wire type is correct for a field.

    ๐Ÿ”„ Changed

    • packed_field_* classes now work with pbf_builder.
    • ๐Ÿ“š Reorganized documentation. Advanced docs are now under doc/advanced.md.

    ๐Ÿ›  Fixed

    • packed_field class is now non-copyable because data can get corrupted if you copy it around.
    • Comparison operators of data_view now have const& parameters.
    • ๐Ÿ‘‰ Make zigzag encoding/decoding functions constexpr.
  • v1.4.5 Changes

    November 18, 2016

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Undefined behaviour in packed fixed iterator. As a result, the macro PROTOZERO_DO_NOT_USE_BARE_POINTER is not used any more.
  • v1.4.4 Changes

    November 15, 2016

    ๐Ÿ›  Fixed

    • Byteswap implementation.
  • v1.4.3 Changes

    November 15, 2016

    ๐Ÿ›  Fixed

    • Undefined behaviour in byte swapping code.
    • โš  Rename some parameters to avoid "shadow" warning from some compilers.
  • v1.4.2 Changes

    August 27, 2016

    ๐Ÿ›  Fixed

    • Compile fix: Variable shadowing.
  • v1.4.1 Changes

    August 21, 2016

    ๐Ÿ›  Fixed

    • ๐Ÿ›  GCC 4.8 compile fixed

    โž• Added

    • ๐Ÿ†• New ability to dynamically require the module as a node module to ease building against from other node C++ modules.
  • v1.4.0 Changes

    July 22, 2016

    ๐Ÿ”„ Changed

    • ๐Ÿ‘‰ Use more efficient new skip_varint() function when iterating over packed varints.
    • Split decode_varint() function into two functions speeding up the common case where a varint is only one byte long.
    • Introduce new class iterator_range used instead of std::pair of iterators. This way the objects can be used in range-based for loops. Read UPGRADING.md for details.
    • Introduce new class data_view and functions using and returning it. Read UPGRADING.md for details.