)]}'
{
  "commit": "b3896065d0df948ea3026ffc5c77a2a9e10cb6ff",
  "tree": "756b028f5aa45aa491d81cd4c5aea0c3002da0ca",
  "parents": [
    "2ca57fbf46d8b6bb1f3fb532242c2ec3bf1eca0d"
  ],
  "author": {
    "name": "Robert Ancell",
    "email": "robert.ancell@canonical.com",
    "time": "Tue Jun 30 02:58:50 2026 +1200"
  },
  "committer": {
    "name": "dart-internal-monorepo",
    "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
    "time": "Mon Jun 29 09:21:13 2026 -0700"
  },
  "message": "Free compositor in view renderer finalize to avoid use-after-free (#188702)\n\nA forced dispose (gtk_widget_destroy) runs even while the raster thread\nholds a strong reference on the view and is presenting onto the\ncompositor. Releasing the compositor in dispose could free it\nmid-present, causing a use-after-free. Move the release to finalize so\nit lives until the last reference (held transitively by the raster\nthread) is dropped.\n\nFixes https://github.com/flutter/flutter/issues/188659\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/c2e79e16c95f81fc832abdbcc1652e0ccfe5a16c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5e271e73c871a6dd0a589e94563aa6727f0ca77c",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "6814cd037b8d61425925c984494a576d547184f5",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "8bd37b67c11d4171e527e3879e0c917a56ba1b16",
      "old_mode": 33188,
      "old_path": "commits.json",
      "new_id": "840cfbc6d1fe142fddf4072e179d10343d914c7c",
      "new_mode": 33188,
      "new_path": "commits.json"
    }
  ]
}
