)]}'
{
  "commit": "563fe25db020e87742d09b0a11db3ec423fa5285",
  "tree": "74cc73d332ba7d14f09233f53b4c7888d2194b77",
  "parents": [
    "544321a458b5cbd1d803e7df76d8262e23068f5d"
  ],
  "author": {
    "name": "Austin Eng",
    "email": "enga@chromium.org",
    "time": "Sat Apr 27 16:46:49 2024 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Apr 27 16:46:49 2024 +0000"
  },
  "message": "cpp: allow casting C++ struct reference types to C types\n\nThis is safe because the C++ layout is static_assert\u0027ed to be the\nsame as the C layout. It removes bad-looking reinterpret_cast\nfrom application code.\n\nMutable reference casts are not allowed. This is because:\n - Some C++ structs have RAII objects in them. Casting to C and\n   then changing the members could cause unexpected lifetime\n   changes\n - Structs with \"free members\" functions only get const conversion\n   operators. This is because output structs like this have RAII data\n   which should not be mutated. The C structs do not have\n   const-qualified members, so conversion to a mutable C struct would\n   be unsafe.\n\nBug: chromium:40195122\nChange-Id: I18cd06b04da2ea34803f517e2b640ceaaba408af\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/185966\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Austin Eng \u003cenga@chromium.org\u003e\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d2ed0de98cad5ea93f746694f845a5a96fa815ce",
      "old_mode": 33188,
      "old_path": "generator/templates/api_cpp.h",
      "new_id": "9790a5054982714613757dcda0a3a1c30e262133",
      "new_mode": 33188,
      "new_path": "generator/templates/api_cpp.h"
    }
  ]
}
