Commit Graph

6838 Commits

Author SHA1 Message Date
Thomas Van Lenten
030a38b954 Fix typo that snuck in with last commit. 2019-08-30 11:43:08 -04:00
Thomas Van Lenten
6ec27f0d08 Add an explicit test using secure coding for added safety. 2019-08-30 09:46:30 -04:00
Wang Qilin
829bb1d791 fix no check for null pointer in encode_decode.c (#6578) 2019-08-29 15:35:14 -07:00
Paul Yang
342ae0ebc3
Fix issues for php map when parsing missing key/value (#6588)
* For missing message value, map should create a default message
instance in order to keep its invariable.
* On 32-bit platform, int64 map key should be string
2019-08-29 15:27:48 -07:00
Keith Smiley
516f8b1560 bazel: Change zlib URL to GitHub
We've notice significant issues downloading from zlib.net. Since there
are already other archives coming from GitHub, this shouldn't negatively
affect reliability.
2019-08-29 11:11:19 -07:00
Joshua Haberman
d2d49bf56a
Merge pull request #6547 from haberman/layout_clear
Optimization for layout_init()
2019-08-28 15:08:30 -07:00
Joshua Haberman
671c2459fc Fixed crash bug and moved initialization into init method. 2019-08-28 13:15:07 -07:00
Jie Luo
84241c6154 Add missing files under benchmarks/ to the dist (#6580)
* Add missing files under benchmarks/ to the dist

* fix typo
2019-08-27 13:16:28 -07:00
Paul Yang
659e799fb8
Sync upb (#6577)
* Sync upb

* https://github.com/protocolbuffers/upb/pull/208

* Fix php c extension compiling

Don't use macros defined by upb

* Update ruby conformance failure list
2019-08-27 13:14:57 -07:00
Thomas Van Lenten
b273cba192 Fix enum writing.
Enums use varint, so if the value is negative it should end up being longer.

This was caught my new conformance test cases.
2019-08-26 17:17:32 -04:00
Rafi Kamal
1be79eefd5
Merge pull request #6557 from elharo/patch-3
Update versions to 3.9.1
2019-08-23 15:12:38 -07:00
Joshua Haberman
06d26df704
Merge pull request #6559 from haberman/notypedef
Removed ByteCountInt64.  This is a transitional typedef that should n…
2019-08-23 12:25:44 -07:00
Paul Yang
6c9d7ecfa4
Test singular fields are encoded in canonical way (#6553)
* Test singular fields are encoded in canonical way

* Defautl values in proto3 should not be encoded.
* Values should be converted to the canonical representation (e.g.,
long int64 value may be truncated for int32 field)

* Update failure list

* Update failure list
2019-08-23 12:20:19 -07:00
Joshua Haberman
6b2fc3c2c9 Removed ByteCountInt64. This is a transitional typedef that should not be released. 2019-08-23 11:10:02 -07:00
Mohamed Heikal
f8a2deafd5 Add ovrride keyword for overriden functions 2019-08-23 09:52:29 -07:00
Mohamed Heikal
db5b2bd13a clang-cl requires fully qualified name for friend class declarations 2019-08-23 09:48:52 -07:00
Mohamed Heikal
402b5772d5 Fix order of export and capability macros on WrappedMutex
clang-cl requires the order to be the opposite of what it currently is.
It should not affect other compilers since this is the only compiler
that has both macros defined.
2019-08-23 09:47:41 -07:00
Rafi Kamal
2228af689f
Merge pull request #6556 from rafi-kamal/201908221610
Down integrate internal changes to GitHub
2019-08-22 22:04:52 -07:00
Rafi Kamal
2cc432fcfd
Merge pull request #6542 from elharo/patch-2
Update to Truth 1.0
2019-08-22 17:57:16 -07:00
Elliotte Rusty Harold
2048a6f442
Update versions to 3.9.1 2019-08-22 20:36:31 -04:00
Rafi Kamal
4f02f056b5 Down integrate to GitHub 2019-08-22 17:33:01 -07:00
Paul Yang
893a7d31e1
No need to have a separate ruby conformance test on Mac (#6555)
The previous issue of mktime doesn't work on Mac has been fixed.
2019-08-22 16:17:37 -07:00
Joshua Haberman
780b050975 Fix for GC of Ruby map frames. (#6533)
We were creating a map decoding frame when starting the *map*,
but clearing the GC slot when finishing each *map entry*.  This
means that the decoding frame could be collected in the meantime.
2019-08-22 14:36:27 -07:00
Julio Monteiro
8c3a2ce198 Add source code URI to the Ruby gemspec file (#6466)
* Add source code URI to the Ruby gemspec file

As a developer, I would like to easily find the source code origin for this gem when browsing through https://rubygems.org/gems/google-protobuf.
In order to solve this, I've followed instructions at https://guides.rubygems.org/specification-reference/#metadata by adding the source_code_uri metadata key pair.

* Use git tag instead of fixed "master" string

* Substitute the string, not the Gem::Version
2019-08-22 14:32:06 -07:00
Paul Yang
d79d368ff1
Remove stale comment (#6552)
Proto2 has been tested for invalid cases. Check implementation of
ExpectParseFailureForProto (https://github.com/protocolbuffers/protobuf/blob/master/conformance/binary_json_conformance_suite.cc#L322)
2019-08-22 13:25:19 -07:00
Joshua Haberman
3e3407af49 Re-add memset() that seemed redundant but is necessary in case of GC. 2019-08-21 18:39:25 -07:00
Joshua Haberman
b9131f0aab Removed commented-out code. 2019-08-21 18:05:20 -07:00
Joshua Haberman
cf07d3c1b2 layout_init() optimization works! 2019-08-21 17:58:37 -07:00
Joshua Haberman
78378dab22 Merge branch 'master' into layout_clear 2019-08-20 17:24:18 -07:00
Elliotte Rusty Harold
e971944bfc
Update to Truth 1.0 2019-08-20 19:49:31 -04:00
Joshua Haberman
63e4a3ecc9
Merge pull request #6541 from haberman/ruby_race_fix
Fix for race in lazy initialization of handlers.
2019-08-20 15:17:14 -07:00
Joshua Haberman
35b0a879c6
Merge pull request #6521 from haberman/layout_mark
Optimized layout_mark() for Ruby
2019-08-20 14:23:13 -07:00
Joshua Haberman
b245551a61 Fix for race in lazy initialization of handlers.
This fixes https://github.com/protocolbuffers/protobuf/issues/6532.
2019-08-20 14:08:31 -07:00
Paul Yang
6b3024f693
Accept string for int64 wrappers (#6491) 2019-08-19 17:16:58 -07:00
Joshua Haberman
ee4f2492ea Fixed some lint errors seen in google3. (#6520) 2019-08-16 15:23:06 -07:00
Joshua Haberman
c02a6fbf2c Bugfix for GC mark of oneof fields. 2019-08-16 09:37:36 -07:00
Joshua Haberman
1c9fb9d45b WIP. 2019-08-16 06:42:13 -07:00
Adam Liddell
c60aaf79e6 Remove duplicate six http_archive definition
Archive is declared in the protobuf_deps() call above
2019-08-15 14:53:59 -07:00
Adam Liddell
8199a01ff4 Move six.BUILD to third_party and update paths 2019-08-15 14:53:59 -07:00
Adam Liddell
23e520e7fc Update six version to 1.12.0 and fix legacy_create_init issue
When the @six//:six library is used on a target without the
`legacy_create_init` flag disabled, the library will not be
usable due to __init__.py being empty and the six code will
be in six.py. This change forces six to occupy the __init__
name, preventing this file getting created regardless of
the `legacy_create_init` setting.

See comments on a74c43bbd9 for
context:
a74c43bbd9
2019-08-15 14:53:59 -07:00
DNKpp
8c46be0328 add Map forward declaration in arena.h
Signed-off-by: DNKpp <dnkpp2011@gmail.com>
2019-08-15 11:38:23 -07:00
Joshua Haberman
013a0ea882 Optimized layout_mark to not iterate over the msgdef. 2019-08-15 06:39:38 -07:00
Joshua Haberman
0088a75ce5 Merge branch 'master' into layout_mark 2019-08-15 05:36:24 -07:00
Joshua Haberman
0f76f8a83b Put oneof case offset in separate oneof table. 2019-08-15 03:37:06 -07:00
Joshua Haberman
63f324a993 Roll forward Ruby upb changes now that protobuf Ruby build is fixed (#5866)
* Rolled forward again with "Updated upb from defcleanup branch..."

Revert "Revert "Updated upb from defcleanup branch and modified Ruby to use it (#5539)" (#5848)"

This reverts commit 1568deab40.

* A few more merge fixes.

* Updated for defcleanup2 branch.

* Fixed upb to define upb_decode().

* Fixed names of nested messages.

* Revert submodule.

* Set -std=gnu90 and fixed warnings/errors.

Some of our Kokoro tests seem to run with this level of warnings,
and the source strives to be gnu90 compatible.  Enforcing it for
every build removes the possibility of some errors showing up in
Kokoro/Travis tests only.

* Fixed remaining warnings with gnu90 mode.

I tried to match warning flags with what Ruby appears to do
in our Kokoro tests.

* Initialize values registered by rb_gc_register_address().

* Fixed subtle GC bug.

We need to initialize this marked value before creating the instance.

* Truly fix the GC bug.

* Updated upb for mktime() fix.

* Removed XOPEN_SOURCE as we are not using strptime().

* Removed fixed tests from the conformance failure list for Ruby.

* Fixed memory error related to oneof def names.

* Picked up new upb changes re: JSON printing.

* Uncomment concurrent decoding test.
2019-08-14 14:41:37 -07:00
Joshua Haberman
402c28a321
Merge pull request #6502 from haberman/rubygcfix
Optimized away the creation of empty string objects.
2019-08-14 09:39:19 +01:00
Paul Yang
fa8f155dcf
Reinstall wget on mac (#6505) 2019-08-13 11:36:17 -07:00
Joshua Haberman
1e37a94bb5 Optimized away the creation of empty string objects.
Prior to this CL, creating an empty message object would create
two empty string objects for every declared field.  First we
created a unique string object for the field's default.  Then
we created yet another string object when we assigned the
default value into the message: we called #encode to ensure
that the string would have the correct encoding and be frozen.

I optimized these unnecessary objects away with two fixes:

1. Memoize the empty string so that we don't create a new empty
   string for every field's default.
2. If we are assigning a string to a message object, avoid creating
   a new string if the assigned string has the correct encoding and
   is already frozen.
2019-08-13 04:54:11 -07:00
reed-lau
c132a4aa16 replace 'const std::string&' with 'std::string'(by value) 2019-08-09 16:04:05 -07:00
reed-lau
e4c7ead20c use move method for SetString 2019-08-09 16:04:05 -07:00