)]}'
{
  "commit": "1a74ba4cb4c2faee902e9088281d824385ba2bc6",
  "tree": "4f7551e8f7b7f83754a724f1bdc06d700e985062",
  "parents": [
    "f20be839276cfc1129c12d89924164624ef3796d"
  ],
  "author": {
    "name": "Joshua Haberman",
    "email": "jhaberman@gmail.com",
    "time": "Tue Feb 11 08:20:00 2020 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Feb 11 08:20:00 2020 -0800"
  },
  "message": "Fix for wrappers with a zero value (#7195)\n\n* Add failing tests for issues with wrapped values where the value is the default\r\n\r\n* Add test for wrapped values without a value set\r\n\r\n* Bugfix for wrapper types with default values.\r\n\r\nThe previous optimizations for wrapper types had a bug that prevented\r\nwrappers from registering as \"present\" if the \"value\" field was not\r\npresent on the wire.\r\n\r\nIn practice the \"value\" field will not be serialized when it is zero,\r\naccording to proto3 semantics, but due to the optimization this\r\nprevented it from creating a new object to represent the presence of the\r\nfield.\r\n\r\nThe fix is to ensure that if the wrapper message is present on the wire,\r\nwe always initialize its value to zero.\r\n\r\nCo-authored-by: Dan Quan \u003cdan@quan.io\u003e\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "713da435229fc9a0aa90024587d982e8d3b00673",
      "old_mode": 33188,
      "old_path": "ruby/ext/google/protobuf_c/encode_decode.c",
      "new_id": "22e3efb47334c460e6fdda66351b9533bd307d4e",
      "new_mode": 33188,
      "new_path": "ruby/ext/google/protobuf_c/encode_decode.c"
    },
    {
      "type": "modify",
      "old_id": "1cb8d3463ed48a4c7e5f7fd1806138581a393442",
      "old_mode": 33188,
      "old_path": "ruby/tests/basic.rb",
      "new_id": "d1a66a6169c33d8131a7a3f38c2445aa51b51202",
      "new_mode": 33188,
      "new_path": "ruby/tests/basic.rb"
    },
    {
      "type": "modify",
      "old_id": "ada42432ebbc96c3364c3e4c0f26bd9897bf2f3d",
      "old_mode": 33188,
      "old_path": "ruby/tests/common_tests.rb",
      "new_id": "ee05b856dc6e9313d1cb742c2d3913a2ba896736",
      "new_mode": 33188,
      "new_path": "ruby/tests/common_tests.rb"
    }
  ]
}
