Commit Graph

87 Commits

Author SHA1 Message Date
Petteri Aimonen
2941e90e04 Reorganize the field decoder interface.
This makes the field decoding functions more intuitive to use.
The old interface is still present if you specify NANOPB_INTERNALS.

Update issue 2
Status: FixedInGit
2012-08-24 20:23:25 +03:00
Petteri Aimonen
dc2da0edc5 Change the substream implementation in pb_decode.
This makes it unnecessary to copy back the state, and also relaxes
the requirements on callbacks (bytes_left will always be valid).
It decreases code size by a few bytes, but may be just slightly slower.
2012-08-24 19:35:17 +03:00
Petteri Aimonen
86257a2a70 Fix a confusing statement in a comment. 2012-08-24 19:25:29 +03:00
Stan Hu
07f24f9b70 Fix casting issues 2012-08-16 22:06:19 +03:00
Petteri Aimonen
8d5086f052 Declare warn_unused_result only on GCC >= 3.4.0.
Thanks to cea.max.simoes for bug report & fix.

Update issue 25
Status: FixedInGit
2012-08-09 16:15:23 +03:00
Petteri Aimonen
1aa61f108a Fix signedness warning in example_unions. nanopb-0.1.5 2012-08-04 14:34:19 +03:00
Petteri Aimonen
b582bc9bf6 Fix bug in decoder with packed arrays.
Update issue 23
Status: FixedInGit
2012-07-31 19:12:57 +03:00
Petteri Aimonen
5703ad0c55 Extend 'alltypes' testcase to cover repeated fields. 2012-07-31 19:10:33 +03:00
Petteri Aimonen
0a5b6852ec Additional unsigned vs. signed fix for tag 2012-07-19 09:05:36 +03:00
Petteri Aimonen
8524de39ce Fix an unsigned vs. signed warning on some compiler. 2012-07-18 21:21:07 +03:00
Petteri Aimonen
10b5da12dc Fixed a few compiler warnings, added check.
Main code is now compiled (for tests) with -pedantic -Wextra.
The test programs are not as strictly bound, but this should
improve the chances that atleast the core library compiles with
most compilers without warnings.
2012-07-18 21:09:13 +03:00
Petteri Aimonen
d8bddabb83 Fix bug with .proto without messages (again), and add a test case for it. nanopb-0.1.4 2012-07-05 20:02:06 +03:00
Petteri Aimonen
01a1556898 Apparently some compilers don't want to automatically cast size_t to uint64_t. 2012-07-05 18:27:07 +03:00
Petteri Aimonen
efef38cf78 Fix some typos in __BIG_ENDIAN__ code 2012-07-05 18:24:11 +03:00
Petteri Aimonen
72cca8d783 Replace #warning with the standard #error. 2012-07-05 18:19:38 +03:00
Stan Hu
7c5bb6541a Cast enum vaules to integers and cast them back where appropraite
to prevent mixed enumeration type compiler warnings
2012-07-05 18:13:50 +03:00
Petteri Aimonen
9b1e1b440a Replace PB_MANY_FIELDS with PB_FIELD_16BIT and PB_FIELD_32BIT.
This allows more precise control over the memory use vs. field size.
2012-07-01 10:15:37 +03:00
Petteri Aimonen
78086cc27d Add PB_MANY_FIELDS option for supporting fields > 255.
Add generator warning if this is necessary.
Fixes issue #14.
2012-06-30 19:28:49 +03:00
Petteri Aimonen
67add3259a Warn if PB_MAX_REQUIRED_FIELDS is not large enough. 2012-06-30 18:23:18 +03:00
Petteri Aimonen
95eb4a5499 Improve the detection of missing required fields.
Now the limit of tracked fields is configurable at compile-time using
PB_MAX_REQUIRED_FIELDS. Added related test and updated documentation.

Fixes issue #18.
2012-06-30 18:10:08 +03:00
Petteri Aimonen
7bcf7ef579 Fixed formatting in docs 2012-06-25 22:17:13 +03:00
Petteri Aimonen
99375a132f Documented NANOPB_INTERNALS compilation option 2012-06-25 22:08:05 +03:00
Petteri Aimonen
c07e576de8 Note about __BIG_ENDIAN__ compilation option 2012-06-25 21:45:40 +03:00
Petteri Aimonen
3a919ddc5e Fix error when .proto contains no Messages (e.g. just enums).
Thanks to Paul Fertser for reporting this bug.
2012-06-20 21:31:23 +03:00
Petteri Aimonen
0f1d5cca59 Added example on how to handle unions. 2012-06-16 14:08:40 +03:00
Petteri Aimonen
e18352d506 Added new functions to public interface in pb_decode.h.
pb_decode_tag and pb_skip_field allow manually iterating the fields
in a message.
2012-06-16 14:07:37 +03:00
Petteri Aimonen
7e1059628c Fix non-constant initializer errors with some compilers.
Fixes issue #13. Thanks to Kevin Worth for reporting.
2012-06-13 21:43:40 +03:00
Petteri Aimonen
5af2c97ecd Add descriptor.proto into the #include exclusion list nanopb-0.1.3 2012-06-12 17:51:08 +03:00
Petteri Aimonen
feddc0115c Merge branch 'master' of https://code.google.com/p/nanopb 2012-05-19 21:25:47 +03:00
Petteri Aimonen
f9501ca185 Add better error messages in the generator when libraries cannot be imported.
Fixes issue #5.
2012-05-19 21:25:10 +03:00
Petteri Aimonen
b943290886 Fix 64-bitness warnings in the example.
Fixes issues 9 and 10.
2012-05-19 21:17:24 +03:00
Petteri Aimonen
d1ca88d20e Fixing compiler warnings, mostly related to unused parameters.
Thanks to David Hotham for the patch. Fixes issue 8.
2012-04-18 20:15:36 +03:00
Petteri Aimonen
9fbe9a5de3 Refactoring the field encoder interface.
Replaced the confusing pb_enc_* functions with new pb_encode_* functions that
have a cleaner interface. Updated documentation.

Got rid of the endian_copy stuff in pb_encode.c, instead using C casts to do it automatically.
This makes the code safer and also reduces binary size by about 5%.

Fixes Issue 6.
2012-03-01 13:46:52 +02:00
Petteri Aimonen
0cdc623050 Modified nanopb_generator.py to generate includes for other .proto files.
Implementation was suggested by extremeblue99.
Fixes issue 4.
nanopb-0.1.2
2012-02-15 17:34:48 +02:00
Petteri Aimonen
f6b08404fa Fixed nanopb_generator.py to read the input file in binary mode. 2012-01-30 10:36:17 +02:00
Petteri Aimonen
b36a1a259a Improved documentation on field decoders. 2012-01-23 18:13:26 +02:00
Petteri Aimonen
113bd7ee87 Fixed issue 1 reported by Erik Rosen:
The size of non-callback bytes-fields was miscalculated, which
caused all following fields in a message to contain garbage.

Previous commit contains a testcase for this.

This fix changes the generated message description. If your protocol uses
bytes-fields, you should regenerate *.pb.c.
nanopb-0.1.1
2012-01-12 19:08:05 +02:00
Petteri Aimonen
0f6b615ae3 Added an encode/decode test for 'required' fields of all types. 2012-01-12 19:06:33 +02:00
Petteri Aimonen
a1adf39805 Fixed a bug in the generator that caused a compiler error on sfixed32 and sfixed64 fields. 2012-01-12 18:10:12 +02:00
Petteri Aimonen
b519edba9d Linewrapping in license nanopb-0.1.0 2012-01-06 19:04:49 +02:00
Petteri Aimonen
28aa0ce096 Added logo for project :)
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1095 e3a754e5-d11d-0410-8d38-ebb782a927b9
2012-01-05 18:35:12 +00:00
Petteri Aimonen
b5fb97f6f5 Make the fuzztest runnable again
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1091 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-12-30 09:05:01 +00:00
Petteri Aimonen
a3f5e4d81f Expanding the tests to better cover decoding from memory buffer.
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1090 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-12-30 08:57:27 +00:00
Petteri Aimonen
1506450b11 Fixed a bug related to submessage encoding into memory buffer.
Stream state was not copied back from substream in pb_enc_submessage,
which caused garbage output if the stream callback modified the state.

Expanded tests to cover this problem.

Thanks to Paweł Pery for debugging and reporting this problem.


git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1089 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-12-30 08:43:50 +00:00
Petteri Aimonen
ad7a0e2111 Merged 0005-Handle-endianness-correctly.patch by Matt Kern.
On big endian machines, pb_dec_fixed32 and pb_dec_fixed64 were
incorrectly overwriting the result value even if reading failed.



git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1022 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30 15:08:32 +00:00
Petteri Aimonen
2a80ff2bd5 Merged 0004-Added-missing-trailing-newlines.patch by Matt Kern.
Just adding newlines at the end of files to satisfy old GCC versions.


git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1021 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30 15:03:23 +00:00
Petteri Aimonen
e66675a25d Merged 0003-Fixed-format-specifiers.patch by Matt Kern.
Fixes cross-platform issues with the length modifier in printf specifiers,
most importantly %d -> %ld.



git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1020 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30 15:01:59 +00:00
Petteri Aimonen
a77ab47c29 Added Makefile for generating nanopb_pb2.py.
I still left the precompiled version in place, as it "often works" :)


git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1019 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30 14:59:25 +00:00
Petteri Aimonen
13b6988b64 Fix some compiler warnings in strict C89 mode
Contributed by Michael Poole.


git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1004 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-10 16:19:55 +00:00
Petteri Aimonen
85e0afd894 Some additions to documentation
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1003 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-04 07:22:05 +00:00