)]}'
{
  "commit": "22438ad8e236990833324d2bc0a4508f4ade7ac3",
  "tree": "8209fd6573a64dc5f10de7fc73489a828e6bc3ba",
  "parents": [
    "ee019f5809088bb4b880250b824fc79ac4b0eb40"
  ],
  "author": {
    "name": "Charlie Lao",
    "email": "cclao@google.com",
    "time": "Wed Aug 02 14:01:45 2023 -0700"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Aug 04 21:29:23 2023 +0000"
  },
  "message": "Embed ActiveVariable into BufferVariable and ShaderVariableBuffer\n\nThis CL embeds ActiveVariable into BufferVariable and\nShaderVariableBuffer struct instead of subclass. This allows us to\nremove the virtual function of ~ActiveVariable(), which means\nActiveVariable is a simple struct with basic types and memcpy can be\nused for load/save. Thus, in this CL, I also moved activeVariables to\nLinkedUniform::mFixedSizeData structure and let memcpy handle the\nload/save.\n\nBug: b/275102061\nChange-Id: I8d21080cfdd72d4d22cef927d136ca428d9b12e4\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4722265\nReviewed-by: Roman Lavrov \u003cromanl@google.com\u003e\nCommit-Queue: Charlie Lao \u003ccclao@google.com\u003e\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cf2f3a7ab188a68bb2aa20be63c043edd25c7cb",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Program.cpp",
      "new_id": "b7fe4f6d4199cb9ff24780cd2cc77e08ad0cf985",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Program.cpp"
    },
    {
      "type": "modify",
      "old_id": "bb2ec4ba2a502f3dd9abbdb1bbeacedc9e157004",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramExecutable.cpp",
      "new_id": "54bf081a69a9d545bfd946c6c282eb4cad84d84d",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramExecutable.cpp"
    },
    {
      "type": "modify",
      "old_id": "5fb6cf6abbc192c78577465eeffdcc4f7f5afdbf",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Uniform.cpp",
      "new_id": "02f1a9d75f336a0063a04a4bc4c09aa95e80192f",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Uniform.cpp"
    },
    {
      "type": "modify",
      "old_id": "f843604417b0de4dceba851aa7c20cef6de3c3d6",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Uniform.h",
      "new_id": "a591096e3db3c9e1ed04718410ffedcb54d9eaa3",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Uniform.h"
    },
    {
      "type": "modify",
      "old_id": "51515724c75ac37f79985a69f5ffa1c7e992b19e",
      "old_mode": 33188,
      "old_path": "src/libANGLE/capture/serialize.cpp",
      "new_id": "65c8ce9b8b483e4878189839e9423016af564473",
      "new_mode": 33188,
      "new_path": "src/libANGLE/capture/serialize.cpp"
    }
  ]
}
