)]}'
{
  "commit": "1eb6edadce6773ee4f7e34e258246de467a38f5f",
  "tree": "a094ae9498f87702af5f2c2744248f67d6b289de",
  "parents": [
    "e77ccad6c749657703dfec543080200421a6b8f8"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Fri Sep 18 13:54:30 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Sep 18 13:54:30 2026 -0700"
  },
  "message": "[utils] Implements RawSpan and ityp::raw_span.\n\n- These span variants are backed with a raw_ptr\u003cT\u003e instead of\n  a T*. These variants are intended to be used as member variables\n  so that backuprefptr reference tracking isn\u0027t skipped when\n  using spans.\n- This change also updates ReinterpretSpan and SpanAs[Writable]Bytes\n  to support usage with the raw span variants.\n- To support using raw_ptr whose move operators null out the src,\n  we also had to update the relevant constructors to match\n  std::span semantics.\n- The unit tests are updated to now test both the raw and non-raw\n  variants via typed test. Most of the changes are just converting\n  from using Span and ityp::span to using macros SPAN and\n  ITYP_SPAN. Added new raw_span_tests.cc that verify that the\n  raw_ptr tracking is working and that dangling spans crash\n  appropriately when the testing environment permits.\n\nBug: 526537224\nChange-Id: I9d6a364e3789f2917b9985c22f15af5153e3f198\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/339076\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "689c8c3b9e7e290442c984150c86b55ee5545198",
      "old_mode": 33188,
      "old_path": "src/utils/BUILD.gn",
      "new_id": "0aed30c30814226c42f99e934e3eae8b60feb065",
      "new_mode": 33188,
      "new_path": "src/utils/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44f8eb9e36db919b53fd3219cd332105c92a9f9d",
      "new_mode": 33188,
      "new_path": "src/utils/raw_span_tests.cc"
    },
    {
      "type": "modify",
      "old_id": "70ff9f4a501638134ec589b8c9d07e13ca964c11",
      "old_mode": 33188,
      "old_path": "src/utils/span.h",
      "new_id": "0e7e52cd990850cdfd553cc326056088354cd3bf",
      "new_mode": 33188,
      "new_path": "src/utils/span.h"
    },
    {
      "type": "modify",
      "old_id": "3fdae5b9da212111c227983b56fd02334fb0fc58",
      "old_mode": 33188,
      "old_path": "src/utils/span_nocompile.nc",
      "new_id": "49fce3f8a6a696cf6d6482fba238f213104c9500",
      "new_mode": 33188,
      "new_path": "src/utils/span_nocompile.nc"
    },
    {
      "type": "modify",
      "old_id": "ae3f9a46b15a2d6af9c84c6f7c6b7f10b9c37537",
      "old_mode": 33188,
      "old_path": "src/utils/span_tests.cc",
      "new_id": "d7b70b8d6c4c1bb880f3bb9510667322527b948b",
      "new_mode": 33188,
      "new_path": "src/utils/span_tests.cc"
    }
  ]
}
