)]}'
{
  "commit": "bf0be226be270cae528bea05f5c78fe1ff42b467",
  "tree": "856d7aa3749b3ea83763a51383d09412431f2359",
  "parents": [
    "23e82fb8728ca99eb0a855ae3615160f0052e971"
  ],
  "author": {
    "name": "Le Hoang Quyen",
    "email": "lehoangquyen@chromium.org",
    "time": "Fri Jul 17 06:16:19 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jul 17 06:16:19 2026 -0700"
  },
  "message": "native: Add MemoryBlockAllocator class\n\nAdd MemoryBlockAllocator, a pool allocator class that recycles\nfixed-size blocks of HeapArray\u003cstd::byte\u003e backed by\nstd::deque\u003cFreeBlock\u003e protected by MutexProtected.\n\nPopping from the back of the queue (back() / pop_back()) provides\nLIFO/MRU allocation for optimal CPU cache locality. Pushing returned\nblocks to the back (push_back()) keeps the oldest blocks at the front\n(front()) for early-terminating eviction in Tick().\n\nBug: 533386841\nChange-Id: I591b7360c86b9fded9db9c1fb84ced0da432f4b4\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/324755\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Quyen Le \u003clehoangquyen@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74b5adc1eb28f191d2b2c87df4613de532eea531",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "e72947b30c0bc8c0d4db5e2fe42cc1c6de9b7dca",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "3341b173859021c1b705fe61b4b883ec8a70dfa1",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "0bdc3af264215e2b82df56140052844e464ed0be",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a084b25d056c2928bc654feaafb0965199a31ca5",
      "new_mode": 33188,
      "new_path": "src/dawn/native/MemoryBlockAllocator.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0836e58116cbc843069786887201477b2283710a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/MemoryBlockAllocator.h"
    },
    {
      "type": "modify",
      "old_id": "2c83354c6dc51a12b60fd0e0f742f0024cbc231b",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/BUILD.gn",
      "new_id": "13dba613aadfb31c64c025d3ecc68619a59050b0",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b9fba4641e3841e1ff8d684ae496381bfefaf251",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/MemoryBlockAllocatorTests.cpp"
    }
  ]
}
