)]}'
{
  "commit": "a09d05c10b1e8963f889e0a14c39daa5fabc21fd",
  "tree": "ea2552c77f6a3beaf325a87d2bf13ec56d07b797",
  "parents": [
    "322bcf827aa00632b91285faf30d3822069616c7"
  ],
  "author": {
    "name": "Austin Eng",
    "email": "enga@chromium.org",
    "time": "Sat Aug 20 02:22:41 2022 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Aug 20 02:22:41 2022 +0000"
  },
  "message": "Make Adapter and Instance lifetimes more robust\n\nPreviously, we would get a use-after-free if you dropped the instance\nbefore an adapter created from it. This CL fixes up the lifetimes\nsuch that Device refs Adapter refs Instance. Instance uses a\ncycle-breaking refcount so that it releases internal refs to its\nadapters when the last external ref is dropped.\n\nBug: none\nChange-Id: I5304ec86f425247d4c45ca342fda393cc19689e3\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/99820\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Austin Eng \u003cenga@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9dab39752d8916b30b6f5b276892c21b6b768800",
      "old_mode": 33188,
      "old_path": "include/dawn/native/DawnNative.h",
      "new_id": "0d0df145d4ed0d735917ab5ebef7f5b8f5c2fcee",
      "new_mode": 33188,
      "new_path": "include/dawn/native/DawnNative.h"
    },
    {
      "type": "modify",
      "old_id": "68e0420346661f16abec5d7a7c2b0ae17641ff33",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Adapter.cpp",
      "new_id": "741531281b3a5746841ce6e1a1bb47d8aeda4bb5",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Adapter.cpp"
    },
    {
      "type": "modify",
      "old_id": "f979b35d8d31c53b0dee338a98fc35378644396a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Adapter.h",
      "new_id": "6b6448f9563fb817805c40ba25920cb93e7b382e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Adapter.h"
    },
    {
      "type": "modify",
      "old_id": "5cb93e203196d4dc83fe92690521e96594deaa29",
      "old_mode": 33188,
      "old_path": "src/dawn/native/DawnNative.cpp",
      "new_id": "89c48ac9ac31fb1a2515c82eb0857161b15a6268",
      "new_mode": 33188,
      "new_path": "src/dawn/native/DawnNative.cpp"
    },
    {
      "type": "modify",
      "old_id": "f737e47d096857cc7d0a6465b949a4a3ea654dab",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.cpp",
      "new_id": "a83d1853bb9adac36f4fe237f1867922a7bac754",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "b8b145b03260c05139404d471b6ff733bcafb41e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.h",
      "new_id": "9e4fe037dbfd8cc8d1b01b6d49d66bd5664ee448",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.h"
    },
    {
      "type": "modify",
      "old_id": "afe9c1d7ffee89aeacdc81fc609206d1d6514573",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Instance.cpp",
      "new_id": "a5821996659d8faf985c229430f5b7b7b57db032",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Instance.cpp"
    },
    {
      "type": "modify",
      "old_id": "df22f2750fc67bf71ea85544c1b1b14766f9f9e4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Instance.h",
      "new_id": "0589061069dd5f6d2d3acbd7493d28a97b2d11ec",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Instance.h"
    },
    {
      "type": "modify",
      "old_id": "0c7e62163b6b185912ab22fed936eb690e3e66a4",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/DeviceInitializationTests.cpp",
      "new_id": "023b7acc53b257caa5a9ac318232b5cabedfe536",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/DeviceInitializationTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "91c4b66826223c23eab3496eff68a29106ddd046",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/ToBackendTests.cpp",
      "new_id": "8720a27e9468543d4a44a896ea8998395394a725",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/ToBackendTests.cpp"
    }
  ]
}
