• Rafi Kamal's avatar
    Fix for wrappers with a zero value (#7195) (#7201) · 37fc4327
    Rafi Kamal authored
    * Add failing tests for issues with wrapped values where the value is the default
    
    * Add test for wrapped values without a value set
    
    * Bugfix for wrapper types with default values.
    
    The previous optimizations for wrapper types had a bug that prevented
    wrappers from registering as "present" if the "value" field was not
    present on the wire.
    
    In practice the "value" field will not be serialized when it is zero,
    according to proto3 semantics, but due to the optimization this
    prevented it from creating a new object to represent the presence of the
    field.
    
    The fix is to ensure that if the wrapper message is present on the wire,
    we always initialize its value to zero.
    Co-authored-by: 's avatarJoshua Haberman <jhaberman@gmail.com>
    Co-authored-by: 's avatarDan Quan <dan@quan.io>
    37fc4327
Name
Last commit
Last update
.github Loading commit data...
benchmarks Loading commit data...
cmake Loading commit data...
conformance Loading commit data...
csharp Loading commit data...
docs Loading commit data...
editors Loading commit data...
examples Loading commit data...
java Loading commit data...
js Loading commit data...
kokoro Loading commit data...
m4 Loading commit data...
objectivec Loading commit data...
php Loading commit data...
protoc-artifacts Loading commit data...
python Loading commit data...
ruby Loading commit data...
src Loading commit data...
third_party Loading commit data...
util/python Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
BUILD Loading commit data...
CHANGES.txt Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS.txt Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Protobuf-C++.podspec Loading commit data...
Protobuf.podspec Loading commit data...
README.md Loading commit data...
WORKSPACE Loading commit data...
appveyor.bat Loading commit data...
appveyor.yml Loading commit data...
autogen.sh Loading commit data...
build_files_updated_unittest.sh Loading commit data...
cc_proto_blacklist_test.bzl Loading commit data...
compiler_config_setting.bzl Loading commit data...
composer.json Loading commit data...
configure.ac Loading commit data...
generate_changelog.py Loading commit data...
generate_descriptor_proto.sh Loading commit data...
global.json Loading commit data...
post_process_dist.sh Loading commit data...
protobuf-lite.pc.in Loading commit data...
protobuf.bzl Loading commit data...
protobuf.pc.in Loading commit data...
protobuf_deps.bzl Loading commit data...
tests.sh Loading commit data...
update_compatibility_version.py Loading commit data...
update_file_lists.sh Loading commit data...
update_version.py Loading commit data...