summaryrefslogtreecommitdiffstats
path: root/pb.h
AgeCommit message (Collapse)AuthorFilesLines
2014-03-15Get rid of pb_bytes_ptr_t, just allocate pb_bytes_array_t dynamically.Petteri Aimonen1-9/+3
This makes the internal logic much simpler, and also keeps the datatypes more similar between STATIC/POINTER cases. It will still be a bit cumbersome to use because of variable length array member. Macros PB_BYTES_ARRAY_T(n) and PB_BYTES_ARRAY_T_ALLOCSIZE(n) have been added to make life a bit easier. This has the drawback that it is no longer as easy to use externally allocated byte array as input for bytes field in pointer mode. However, this is still easy to do using callbacks, so it shouldn't be a large issue.
2014-02-24Beginnings of malloc support in pb_decodePetteri Aimonen1-0/+4
2014-02-15Setting version to 0.2.7-devPetteri Aimonen1-1/+1
2014-02-15Publishing nanopb-0.2.6Petteri Aimonen1-1/+1
2014-02-04Add coments to places where STATIC_ASSERT is used.Petteri Aimonen1-3/+13
Update issue 96 Status: FixedInGit
2014-01-01Setting version to 0.2.6-devPetteri Aimonen1-1/+1
2014-01-01Publishing nanopb-0.2.5Petteri Aimonen1-1/+1
2013-12-29Organize allocation logic in generator, add pb_bytes_ptr_t.Petteri Aimonen1-3/+11
Allocation decision is now made before the field data type is decided. This way the data type decisions can more cleanly account for the allocation type, i.e. FT_DEFAULT logic etc. Added pb_bytes_ptr_t for pointer-allocated bytes-fields. There is no point generating separate structs for these, as they would all be of the same type.
2013-12-29Generating and encoding messages with dynamic allocaitonMartin Donath1-0/+17
2013-12-21Add PB_LTYPE_UVARINT to fix encoding of negative int32 values.Petteri Aimonen1-17/+13
Apparently int32 values that are negative must be cast into int64 first before being encoded. Because uint32 still needs to be cast to uint64, the cases for int32 and uint32 had to be separated. Update issue 97 Status: FixedInGit
2013-11-07Setting version to 0.2.5-devPetteri Aimonen1-1/+1
2013-11-07Publishing nanopb-0.2.4Petteri Aimonen1-1/+1
2013-10-20Define pb_size_t and pb_ssize_t data types.Petteri Aimonen1-22/+19
Use these in pb_field_t definition to clean up some #ifs, and also to prepare for solving issue #82.
2013-09-18Setting version to 0.2.4-devPetteri Aimonen1-1/+1
2013-09-18Publishing nanopb-0.2.3Petteri Aimonen1-1/+1
2013-09-13Merge branch 'dev_get_rid_of_ternary_operator'Petteri Aimonen1-19/+43
2013-09-13Fine-tune the naming of new macros before merging into master.Petteri Aimonen1-11/+17
Requires re-generation of files generated with dev_get_rid_of_ternary_operator.
2013-09-11Get rid of the ternary operator in the pb_field_t initialization.Petteri Aimonen1-19/+37
Some compilers where unable to detect that the ternary operator can be evaluated at the compile time. This commit does the evaluation on the Python side, which should fix the problem. The new .pb.c files are generated using PB_FIELD2() macro. The old PB_FIELD() macro remains, so that previously generated files keep working.
2013-09-10Add an example pb_syshdr.h file for platforms without C99.Petteri Aimonen1-0/+11
This allows building the tests easily on Visual C++ in C mode. Also add checks to pb.h that the defined integer types are of the proper sizes. This may prevent some difficult to debug problems later..
2013-08-18Setting version to 0.2.3-devPetteri Aimonen1-1/+1
2013-08-18Publishing nanopb-0.2.2Petteri Aimonen1-1/+1
2013-07-22Fix bugs in extension support when multiple extension fields are present.Petteri Aimonen1-0/+11
2013-07-17Implement extension support for the encoderPetteri Aimonen1-1/+1
2013-07-17Implement generator support for extension fields (no encoder/decoder support ↵Petteri Aimonen1-2/+53
yet)
2013-07-06Add section in pb.h for changing compilation settings.Petteri Aimonen1-16/+57
Update issue 76 Status: FixedInGit
2013-04-14Setting version to 0.2.2-devPetteri Aimonen1-1/+1
2013-04-14Publishing nanopb-0.2.1Petteri Aimonen1-1/+1
2013-04-08__pragma keyword is only supported by recent Microsoft compilersdch1-1/+1
2013-04-02Change the callback function to use void**.Petteri Aimonen1-0/+9
NOTE: This change breaks backwards-compatibility by default. If you have old callback functions, you can define PB_OLD_CALLBACK_STYLE to retain the old behaviour. If you want to convert your old callbacks to new signature, you need to do the following: 1) Change decode callback argument to void **arg and encode callback argument to void * const *arg. 2) Change any reference to arg into *arg. The rationale for making the new behaviour the default is that it simplifies the common case of "allocate some memory in decode callback". Update issue 69 Status: FixedInGit
2013-03-13Fix warning on clang.Petteri Aimonen1-1/+1
Update issue 67 Status: FixedInGit
2013-03-13Add support for packed structures on IAR and MSVC.Petteri Aimonen1-4/+24
Update issue 66 Status: FixedInGit
2013-03-09Add PB_SYSTEM_HEADER compile time option.Petteri Aimonen1-0/+5
This allows replacing the C99 standard include file names with a single system-specific file. It should provide all the necessary system functions (typedefs, memset, memcpy, strlen). Update issue 62 Status: FixedInGit
2013-03-02Setting version to 0.2.1-devPetteri Aimonen1-1/+1
2013-03-02Publishing nanopb-0.2.0Petteri Aimonen1-1/+1
2013-02-20Separate PB_HTYPE to PB_ATYPE and PB_HTYPE.Petteri Aimonen1-23/+18
Also clean up the logic so that it is easier to implement more allocation types in the future. Update issue 53 Status: FixedInGit
2013-02-20Rename PB_HTYPE_ARRAY -> PB_HTYPE_REPEATED.Petteri Aimonen1-2/+2
This is a more logical name in parallel with PB_HTYPE_REQUIRED and PB_HTYPE_OPTIONAL. Warning: This breaks backwards-compatibility of generated .pb.c files. You will have to regenerate the files and recompile.
2013-02-17Reformat generated .pb.c files using macros.Petteri Aimonen1-1/+76
This has the following advantages: 1) Easier to modify pb_field_t encoding 2) Simpler generator logic 3) Tidier looking, easier to read .pb.c files Update issue 58 Status: FixedInGit
2013-02-11Replace pb_type_t enum with #defines.Petteri Aimonen1-54/+54
See issue #57.
2013-02-11Set version to 0.2.0-devPetteri Aimonen1-1/+1
2013-01-21Fix misleading comment (current generator sets LTYPE always).Petteri Aimonen1-2/+2
2012-12-13Setting version to 0.1.9-devPetteri Aimonen1-1/+1
2012-12-13Publishing nanopb-0.1.8Petteri Aimonen1-1/+1
2012-11-16Rename test_compiles.c to test_multiple_files.cPetteri Aimonen1-1/+3
2012-11-16Fix STATIC_ASSERT macro when using multiple .proto files.Steffen Siering1-1/+3
The __COUNTER__ macro (used for generating unique names) is at least supported by gcc, clang and Visual Studio. With this change test_compiles.c is compilable, since no more typedefs are redefined. Compilers/Preprocessors not supporting __COUNTER__ error's are still possible which are hopfully handled by the usage of __LINE__ in most sittuations. Added unit test for the problem.
2012-11-11Setting version to 0.1.8-devPetteri Aimonen1-1/+1
2012-11-11Publishing nanopb-0.1.7Petteri Aimonen1-1/+1
2012-10-29Add nanopb version number to generated files.Petteri Aimonen1-0/+2
tools/set_version.sh is used to update the values. Update issue 36 Status: FixedInGit
2012-10-29Give names to generated structures to allow forward declaration.Petteri Aimonen1-2/+4
Update issue 39 Status: FixedInGit
2012-09-03Enable -Wconversion for core and fix the warnings.Petteri Aimonen1-3/+6
This should help avoid issue 33 in the future.
2012-09-02Fix -Wextra warning in generated .pb.c files.Petteri Aimonen1-1/+1
Compile the generated files with the same extra-strict settings as the core, in order to detect problems in tests. Update issue 32 Status: FixedInGit