Skip to content

protobluff-0.4.0

Compare
Choose a tag to compare
@squidfunk squidfunk released this 16 Dec 18:46
· 52 commits to master since this release

This release adds full support for packed fields (in lite and full runtime). Furthermore, some functions have been deprecated to prepare for the 1.0.0 release, in particular raw pointer access, because unaligned access of floats and doubles may cause undefined behavior on some architectures, and the position of the cursor, as due to the possible erasure of fields during a cursor's lifetime, the position may not be accurately determined.

Again, this release is mostly compatible with prior versions, but a few breaking changes to the ABI could not be omitted. See the MIGRATION file for further assistance. However, approaching the 1.0.0 release, the ABI can be considered stable very soon. The libtool version has been updated to 3.0.0.

Runtime:

  • Deprecated raw pointer access (will be removed in 1.0.0)
  • Deprecated pb_cursor_pos() (will be removed in 1.0.0)
  • Fixed invalid reads reported when compiling with -fsanitize
  • Fixed incorrectly reported position in pb_cursor_seek()
  • Fixed cursor state when erasing the last field in a message
  • Fixed alignment issues and checks after erasing parts
  • Added support for packed fields
  • Added missing error string for PB_ERROR_EOM (could have caused segfault)
  • Added tests for packed fields
  • Changed cursor semantics: cursor will now skip unknown fields
  • Changed cursor to directly initialize descriptor
  • Changed encoder interface to account for packed fields
  • Removed obsolete PB_ERROR_WIRETYPE and PB_ERROR_DESCRIPTOR error codes
  • Removed pb_cursor_tag() from ABI in favor of pb_cursor_descriptor()
  • Renamed C-linkage classifier to avoid name clashes
  • Adapted message and field from cursor constructors
  • Adapted examples to interface changes

Generator:

  • Added support for packed fields
  • Changed encoder generator to account for repeated fields