aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-08-04Add inline allocation of bytes fieldsTom Roeder13-38/+239
This commit adds a new FT_INLINE allocation type that forces bytes fields to be inlined into the struct. E.g., pb_byte_t my_bytes[32]. This requires max_size for the bytes field. The FT_INLINE type is represented as a new LTYPE: FT_LTYPE_FIXED_LENGTH_BYTES. This commit also updates the documentation with FT_INLINE and FT_LTYPE_FIXED_LENGTH_BYTES. Added an AUTHORS file in apparent order of appearance in the git log history from $(git log --all).
2016-08-03Merge pull request #209 from LuminateWireless/bazel-buildPetteri Aimonen1-0/+18
Add bazel BUILD file for nanopb.
2016-08-01Add bazel BUILD file for nanopb.Ming Zhao1-0/+18
2016-07-23Include package name in include guard (issue #207).Petteri Aimonen4-2/+41
Fix suggested by Ulenspiegel. Also added testcase for the same.
2016-06-19Setting version to 0.3.7-devPetteri Aimonen2-2/+2
2016-06-19Publishing nanopb-0.3.6Petteri Aimonen3-3/+3
2016-06-14Update changelogPetteri Aimonen1-0/+9
2016-06-06Clarify security model with regard to pointer _count fields.Petteri Aimonen1-2/+5
2016-06-06Protect against corrupted _count fields in pb_release().Petteri Aimonen1-0/+6
Fixes a potential security issue (#205). Only relevant if the user code writes untrusted data to _count fields, but this is allowed as per the security model.
2016-06-06Add testcase for issue #205Petteri Aimonen4-0/+38
2016-06-06Add static repeated submessage field to mem_release test case.Petteri Aimonen2-0/+3
Attempt at reproducing issue #204.
2016-05-25Small updates to docsPetteri Aimonen1-4/+5
2016-05-25Fix error in STATIC_ASSERT with multiple files (issue #203)Petteri Aimonen1-1/+1
The FieldMaxSize class was reusing the same list instance, causing problems when multiple files were specified on the protoc command line.
2016-05-25Add testcase for issue #203Petteri Aimonen4-1/+30
2016-05-05Merge pull request #201 from yanivmo/patch-1Petteri Aimonen1-0/+55
Added explanation of `oneof` section usage
2016-05-05Added explanation of `oneof` section usageYaniv Mordekhay1-0/+55
2016-03-10Fix formatting in docsPetteri Aimonen1-1/+1
2016-03-07Some more docs updatesPetteri Aimonen1-1/+11
2016-03-07Merge pull request #196 from mxk/api-refPetteri Aimonen1-38/+32
Update API reference to match headers
2016-03-07Update API reference to match headersMaxim Khitrov1-38/+32
Update typedefs and function prototypes in the API reference to match header files. Delete documentation for pb_skip_varint/pb_skip_string, which are superseded by pb_skip_field, and add pb_get_encoded_size.
2016-03-04Provide comments about uncalculable message sizes (issue #195)Petteri Aimonen4-1/+22
2016-02-20Merge pull request #194 from isotes/masterPetteri Aimonen1-0/+4
Generate MIN/MAX/ARRAYSIZE for enums
2016-02-20Merge pull request #193 from recursify/masterPetteri Aimonen1-7/+21
Add -D option to specify output directory
2016-02-19Generate MIN/MAX/ARRAYSIZE for enumsisotes1-0/+4
This generates #defines mirroring the following values from the generated C++ code of GPB * const Foo Foo_MIN: the smallest valid value of the enum (VALUE_A in the example). * const Foo Foo_MAX: the largest valid value of the enum (VALUE_C in the example). * const Foo Foo_ARRAYSIZE: always defined as Foo_MAX + 1.
2016-02-19Add -D option to specify output directoryKenshi Kawaguchi1-7/+21
2016-02-13Setting version to 0.3.6-devPetteri Aimonen2-2/+2
2016-02-13Publishing nanopb-0.3.5Petteri Aimonen4-4/+7
2016-02-07Update pb_release docsPetteri Aimonen1-2/+2
2016-02-06Update changelogPetteri Aimonen1-0/+12
2016-02-06Add code generator insertion points to files (#178).Petteri Aimonen1-0/+6
2016-01-27Fix a few remaining bugs related to CHAR_BIT!=8 platforms.Petteri Aimonen3-52/+65
2016-01-27Remove obsolete __BIG_ENDIAN__ compilation option.Petteri Aimonen2-8/+0
This is now handled automatically using shift operations.
2016-01-27Add note to migration docPetteri Aimonen1-0/+18
2016-01-27Replace uint8_t with a pb_byte_t typedef.Petteri Aimonen6-92/+111
This supports platforms where uint8_t does not exist. If you are using a custom pb_syshdr.h, this may require adding definitions for uint_least8_t etc.
2016-01-27Modify the int size STATIC_ASSERTS to work with CHAR_BITS!=8.Petteri Aimonen1-9/+3
This will still catch the most common bug of long int vs. long long int. The uint8_t checks do not seem necessary, test for this will be added in later commit.
2016-01-26Get rid of type punning in pb_encode_fixedXX().Petteri Aimonen2-54/+37
This was never very clean code, but it was fast. Hopefully compilers are smart enough to optimize it away, or the speed difference is not very large. This should be checked. However working code is always more important than fast code, and the previous way couldn't really work for platforms that do not have byte-sized memory access. Related to PR #191.
2015-12-16Merge pull request #190 from aeruder/masterPetteri Aimonen2-6/+14
pb_istream_from_buffer: add const to prototype
2015-12-16pb_istream_from_buffer: add const to prototypeAndrew Ruder2-6/+14
This commit changes the prototype for pb_istream_from_buffer from: pb_istream_t pb_istream_from_buffer(uint8_t *buf, size_t bufsize); to pb_istream_t pb_istream_from_buffer(const uint8_t *buf, size_t bufsize); This allows pb_istream_from_buffer users to point to const buffers without having to inspect code (to ensure practical const-ness) and then be forced to manually cast away const. In order to not break compatibility with existing programs (by introducing a const/non-const union in the pb_istream_t state) we simply cast away the const in pb_istream_from_buffer and re-apply it when possible in the callbacks. Unfortunately we lose any compiler help in the callbacks to ensure we are treating the buffer as const but manual inspection is easy enough.
2015-11-21Fix mistake in previous commitPetteri Aimonen1-1/+2
2015-11-20Fix generator crash with Enum inside Oneof (issue #188).Petteri Aimonen3-6/+45
Add testcase for the same.
2015-11-15Second fix for -pedantic build issue in testsPetteri Aimonen1-1/+2
2015-11-14Fix -Wno-pedantic on old GCCPetteri Aimonen1-1/+1
2015-11-14Add testcase for anonymous unions + few fixes.Petteri Aimonen5-7/+153
Fixes compilation error with anonymous unions when it is not the last field in message. Also fixes extraneous newlines in header file. Cleanup the pb.h extraneous use of ##.
2015-11-10Add option to allow for anonymous unionsBenjamin Kamath3-4/+35
2015-10-25Ignore null pointers in pb_release() (issue #183).Petteri Aimonen1-0/+3
2015-10-24Add contributing.md to provide issue templates on githubPetteri Aimonen1-0/+32
2015-10-17Merge pull request #181 from kylemanna/cmakePetteri Aimonen2-13/+31
Cmake updates
2015-10-15examples: cmake_simple: Use auto discovered pathKyle Manna1-2/+1
* No need to specify the src path and the module path. Let cmake do it.
2015-10-15cmake: Auto discover NANOPB_SRC_ROOT_FOLDERKyle Manna1-4/+6
* Use CMAKE_CURRENT_LIST_DIR to learn the path of the currently running file to determine location of NanoPB. * Simplifies use in other projects.
2015-10-15cmake: Build generator files in build directoryKyle Manna1-7/+24
Treat the source directory as immutable. Copy the generator directory which previously generated files in-tree to the build directory and then generate files. Many emerging continuous integration build systems test builds across multiple versions of dependencies protobuf and python versions in particular. The previous source tree builds resulted in stale files from the last build breaking the current build. By placing the build files in the build directory, the build system automatically removes stale files (removes output build directory) and regenerates them as necessary.