660 Commits

Author SHA1 Message Date
Robert Edmonds
8067d454b7 .travis.yml: Bump protobuf version to 3.7.1, use new URL 2019-04-10 20:28:52 -04:00
Hayri Ugur Koltuk
5d043e544f Fix a SEGV on on protobuf_c_check on messages with oneofs inside
Signed-off-by: Hayri Ugur Koltuk <ugur.koltuk@adyen.com>
2019-02-05 13:57:07 +01:00
msshapira
4d9d0614d4
fix suport for MSVC static build 2018-11-12 17:43:59 +02:00
Robert Edmonds
269771b4b4
Merge pull request #335 from protobuf-c/edmonds/version/1.3.1
Bump version to 1.3.1
v1.3.1
2018-08-14 00:00:07 -04:00
Robert Edmonds
91486fdd11 ChangeLog: 1.3.1 2018-08-13 23:42:41 -04:00
Robert Edmonds
53bf6c0b7c Bump version to 1.3.1 2018-08-13 23:18:25 -04:00
Robert Edmonds
4176920e6b
Merge pull request #334 from protobuf-c/edmonds/ax_cxx_compile_stdcxx
Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers
2018-08-13 23:11:57 -04:00
Robert Edmonds
defc6f044b Revert ".travis.yml: Force C++ standard language version"
This reverts commit 0585e053a8723fbdea4deefe17b6a6512274cde5.

Now that we autodetect any needed flags to enable C++11 support with the
AX_CXX_COMPILE_STDCXX macro, we no longer need to force this in
.travis.yml.
2018-08-13 22:39:31 -04:00
Robert Edmonds
9becc1b66f configure.ac: Use AX_CXX_COMPILE_STDCXX to enable C++11 support in old compilers
This commit enables use of the AX_CXX_COMPILE_STDCXX macro from the
autoconf-archive (added in the previous commit), which automatically
adds needed flags to the CXX variable to enable C++11 support. This only
works and is only required on compilers that are both new enough to have
C++11 support and old enough to not enable it by default.

We call it with "noext" as the second argument (so that we get the "std"
C++11 variant on GCC) and "mandatory" as the third argument, since we
now rely on C++11 features as of 83c59e705f461cc08e5844d62514dff27c33a74f.

Note that this macro is only called when we are building the compiler
(i.e., without --disable-protoc) so that the library can still be built
on ancient C compilers.
2018-08-13 22:38:19 -04:00
Robert Edmonds
42612b4ba4 m4/ax_cxx_compile_stdcxx.m4: Import from autoconf-archive (serial 10) 2018-08-13 22:23:25 -04:00
Robert Edmonds
f3102ed227
Merge pull request #290 from matthid/master
fix mingw compilation
2018-08-13 22:10:38 -04:00
Sam Collinson
9b899c9d3b Check the return value of int_range_lookup before using as an array index; it can return -1 2018-08-13 22:07:17 -04:00
Robert Edmonds
8073f6ee23
Merge pull request #333 from protobuf-c/edmonds/protobuf-scoped_ptr-removal
Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr
2018-08-13 22:06:26 -04:00
Robert Edmonds
83c59e705f Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr
Upstream protobuf removed scoped_ptr.h, which provided the scoped_ptr
that we depended on, in commit 67952fab2c766ac5eacc15bb78e5af4039a3d398
(67952fab2c).

This commit converts uses of scoped_ptr type to idiomatic C++11
std::unique_ptr, similar to the changes in the protobuf commit.

This has been tested on protobuf 3.0.0 (the version currently in Debian)
as well as the latest protobuf 3.6.1 release.
2018-08-13 21:26:00 -04:00
Robert Edmonds
26a836423c
Merge pull request #309 from iveqy/add_std
Add std:: to some types
2018-08-13 20:57:46 -04:00
Robert Edmonds
3bcca236c9
Merge pull request #332 from protobuf-c/edmonds/travis-updates
Update Travis to use xenial, protobuf 3.6.1
2018-08-13 20:46:31 -04:00
Robert Edmonds
0585e053a8 .travis.yml: Force C++ standard language version
The xenial Travis-CI environment uses a g++ version that is old enough
that it doesn't use C++11 or newer by default, so we have to force it by
setting CXX to "g++ -std=c++11".
2018-08-13 20:24:05 -04:00
Robert Edmonds
3b7ba77c4d .travis.yml: Bump protobuf version to 3.6.1 2018-08-13 19:40:30 -04:00
Robert Edmonds
fe36c1677a .travis.yml: Update to xenial
This commit updates the base Travis-CI image from trusty to xenial,
which ships with a slightly more modern compiler.
2018-08-13 19:40:04 -04:00
Fredrik Gustafsson
034e603d2a Add std:: to some types
This is required for compilation to succeed on debian jessie with g++
6.3.0.
2018-03-11 08:57:46 +01:00
Italo Guerrieri
565118bf26 Check if tag is equal to 0
This is needed because in the syntax of Google protobuf the zero
value is not valid tag value. The specification
(https://developers.google.com/protocol-buffers/docs/proto3) says
that "The smallest tag number you can specify is 1, and the largest
is 2^29-1, or 536,870,911."
2017-11-29 18:36:08 +01:00
Matthias Dittrich
71273f3919 fix mingw compilation 2017-09-25 18:38:24 +02:00
Robert Edmonds
4912c5a574 Merge pull request #285 from protobuf-c/edmonds/protobuf-2.x-compatibility
Restore protobuf-2.x compatibility
2017-08-14 15:36:00 -04:00
Robert Edmonds
4302266b45 Restore protobuf-2.x compatibility
The change in commit 712154b912de824741381c0bb26c2fbed54515a3 ("Bump
minimum required header version for proto3 syntax") uses functionality
only exposed by protobuf-3.x, breaking the build when compiling against
protobuf-2.x.

Since we still want to support building against protobuf-2.x, this
commit makes the proto3 syntax check in the file generator dependent on
building against protobuf-3.x.
2017-08-07 12:31:55 -04:00
Robert Edmonds
dac1a65fea Merge pull request #283 from protobuf-c/edmonds/changelog/1.3.0
ChangeLog: 1.3.0
v1.3.0
2017-08-05 17:41:36 -04:00
Robert Edmonds
cd573da538 ChangeLog: 1.3.0 2017-08-05 16:46:57 -04:00
Robert Edmonds
ab599cfae8 Merge pull request #282 from protobuf-c/edmonds/proto3-bump-min_header_version
Bump minimum required header version for proto3 syntax
2017-07-30 22:51:25 -04:00
Robert Edmonds
712154b912 Bump minimum required header version for proto3 syntax
The changes in #274 (proto3: make strings default to "" instead of NULL)
add a new symbol to the library and add an 'extern' declaration to the
protobuf-c header file.

Since the compiler may generate files that depend on that new
'protobuf_c_empty_string' declaration in protobuf-c.h, we need to bump
the min_header_version value that is written into generated header
files. But since the 'protobuf_c_empty_string' symbol can only be
referenced when generating proto3 syntax files, we only need to use the
stricter min_header_version value when processing a proto3 file.
2017-07-29 20:16:22 -04:00
Robert Edmonds
631dbd0db7 .gitignore: t/generated-code3/test-generated-code3 2017-07-29 19:44:07 -04:00
Robert Edmonds
aee115c92b Merge pull request #281 from protobuf-c/edmonds/version/1.3.0
Bump version to 1.3.0
2017-07-29 19:43:41 -04:00
Robert Edmonds
25cb6e2bdf Bump version to 1.3.0 2017-07-29 19:30:36 -04:00
Robert Edmonds
d7189b6940 Merge pull request #280 from protobuf-c/edmonds/fix-namespace-errors
Fix namespace errors when compiled with latest protobuf
2017-07-29 19:10:00 -04:00
Robert Edmonds
582cad8bff Fix namespace errors when compiled with latest protobuf
The protobuf project removed "using namespace std" namespace pollution
from their stubs/common.h header file. This caused build failures for us
since we relied on their namespace pollution.

This commit updates protobuf-c to convert:

 'map' → 'std::map'
 'set' → 'std::set'
 'back_insert_iterator' → 'std::back_insert_iterator'
2017-07-29 18:52:28 -04:00
Robert Edmonds
858ce990e8 Merge pull request #274 from pbor/wip/empty-string
proto3: make strings default to "" instead of NULL
2017-07-29 18:17:15 -04:00
Paolo Borelli
2a46af4278 proto3: make strings default to "" instead of NULL
The spec talks about "empty string" and other languages like C#
return a zero length string and not null.
This is useful because when moving from proto2's "required string"
to a proto3's plain string we will be guaranteed that we
never get a null pointer.
The tradeoff is adding a special case to the library but avoiding
a lot of null checks in the calling code.
The current code is already special casing "" in pack_string.
2017-06-12 09:32:39 +02:00
Robert Edmonds
a8921fe7dc Merge pull request #267 from pbor/wip/zeroish
Rework is_zeroish one more time
2017-04-10 08:40:51 -07:00
Robert Edmonds
5464067168 Merge pull request #266 from alex85k/next
Update CMakeLists.txt
2017-04-10 08:27:05 -07:00
Paolo Borelli
4ca344ed9f Rework is_zeroish one more time
The "member" param cannot be NULL, so last patch was not correct.
However to be valgrind clean we need to cast to the right size.
2017-04-10 17:21:25 +02:00
alex85k
58a4514164 fixing tests building in CMake 2017-04-10 18:42:59 +05:00
Robert Edmonds
0014b7c046 Merge pull request #265 from pbor/wip/cleanup
Small cleanup in oneof handling
2017-04-09 09:44:46 -07:00
Robert Edmonds
448dba28d9 Merge pull request #264 from pbor/wip/zeroish
Fix proto3 "is zeroish" evaluation
2017-04-09 09:44:35 -07:00
Paolo Borelli
6bbcc433d5 Cleanup oneof handling
Small cleanups: pass the oneof case param by value instead of by
reference and use an early return if the case does not match.
2017-04-09 14:36:49 +02:00
Paolo Borelli
13b6e1fd00 Improve proto3 unit test
Make sure we actually include the proto3 generated header and
test nested submessages
2017-04-09 10:54:58 +02:00
Paolo Borelli
1c8805a780 Fix "is zeroish" evaluation for proto3
In proto3 the default value is zero (NULL for pointers and 0 for
scalars). However when checking we still need to test by type
because poinetr types have an extra indirection.
2017-04-09 10:54:34 +02:00
Robert Edmonds
39967de734 Merge pull request #258 from pbor/fixup
Remove leftover FIXME comment
2017-02-27 14:26:20 -08:00
Paolo Borelli
7c114269d7 Remove leftover FIXME comment 2017-02-26 10:39:35 +01:00
Robert Edmonds
56f4709945 Merge pull request #257 from protobuf-c/edmonds/strict-warnings
Add warning flags to my_CFLAGS
2017-02-25 15:33:11 -08:00
Robert Edmonds
c5c236b42e protobuf_c_message_unpack(): Remove a shadowed variable
Here 'j' is used as a loop index and there's no need to re-declare it
inside this block.

Found with -Wshadow.
2017-02-25 18:18:49 -05:00
Robert Edmonds
6eb0b271ae configure.ac: Add warning flags to my_CFLAGS 2017-02-25 18:18:12 -05:00
Robert Edmonds
1b71214c02 m4/ax_check_compile_flag.m4: Import from autoconf-archive (serial 5) 2017-02-25 17:31:13 -05:00