)]}'
{
  "commit": "587f387fd9d49106fd31d2c00aae20938b72460d",
  "tree": "f3ac85c87ded965876c9999aa1bc2bdfe3c03456",
  "parents": [
    "e1abcb4564cf79ddacc90e3e19590fe3c0d5233a"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Thu Jan 21 15:30:10 2021 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Thu Jan 21 15:30:10 2021 +0000"
  },
  "message": "Add tint::BlockAllocator\u003cT\u003e\n\nA container and allocator of objects of (or deriving from) the template type `T`.\n\nObjects are allocated by calling Create(), and are owned by the BlockAllocator.\nWhen the BlockAllocator is destructed, all constructed objects are automatically destructed and freed.\n\nObjects held by the BlockAllocator can be iterated over using a View or ConstView.\n\nUse this to hold the ast::Nodes in the ast::Module\n\nThis is called BlockAllocator as it can be optimized to hold objects in contiguous memory blocks, which will improve cache coherencey. Currently BlockAllocator is a straight port of the vector-of-unique-ptr, taken from ast::Module.\n\nChange-Id: I4bf4d298aec3c70d2ddf833e2f168416cbb024c0\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/38001\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "112e76ed2df93700b07c1ee6927201734c7126de",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "45ceb5e8f82d1ed0e4b3b3340c1a9e8ce26e0c56",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f7eb93b831da2302300f35ca3a5be9bb860643a6",
      "old_mode": 33188,
      "old_path": "fuzzers/tint_ast_clone_fuzzer.cc",
      "new_id": "6ce94bcde0b2e82334afef2066495607eef0af17",
      "new_mode": 33188,
      "new_path": "fuzzers/tint_ast_clone_fuzzer.cc"
    },
    {
      "type": "modify",
      "old_id": "8cc4777517f7a2adcc0800b4d5655f74259f8656",
      "old_mode": 33188,
      "old_path": "src/CMakeLists.txt",
      "new_id": "c655d71de2bd1625f751c847967456b737a2b62e",
      "new_mode": 33188,
      "new_path": "src/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "a42bd7ff9b979c0805710c3675d004887e48709d",
      "old_mode": 33188,
      "old_path": "src/ast/module.h",
      "new_id": "63fd9c75c98e9b58781ba6da5e897bd2edc6394e",
      "new_mode": 33188,
      "new_path": "src/ast/module.h"
    },
    {
      "type": "modify",
      "old_id": "e42cb9afb39f5a8afb0b31f38754ca5619b9e667",
      "old_mode": 33188,
      "old_path": "src/ast/module_clone_test.cc",
      "new_id": "1c7fd7b831547dcf17a0c65727f6a475d793b590",
      "new_mode": 33188,
      "new_path": "src/ast/module_clone_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "915d4b07c7474f6fbac64bc80a27d46aeaf06bf7",
      "new_mode": 33188,
      "new_path": "src/block_allocator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e468907893c7b208ce3c2d3104f6dadc108aa8d7",
      "new_mode": 33188,
      "new_path": "src/block_allocator_test.cc"
    }
  ]
}
