)]}'
{
  "commit": "634e970210b7f8233cec53510bf82a3c9c18a80d",
  "tree": "1f4ff40e6a150c4db44d8b9120fa6738e5147887",
  "parents": [
    "75c589e1f436688fca8f5b7f7a8affeafaa4f923"
  ],
  "author": {
    "name": "alexisdavidc",
    "email": "alexisdavidc@google.com",
    "time": "Fri Jun 12 13:28:34 2026 -0400"
  },
  "committer": {
    "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "time": "Tue Jun 23 09:07:56 2026 -0700"
  },
  "message": "[m149] Resolved a Data Race on fStream in SkTypeface_Mac\n\nThere was a data race in SkTypeface_Mac where `onOpenStream`\nand `onOpenExistingStream` would race to read/write `fStream`. While `onOpenStream` would begin initializing `fStream` on one thread, a separate thread could be calling `onOpenExistingStream` to try to read `fStream` before it was done initializing.\n\nThe issue was resolved by applying a mutex on `fStream`.\n\nThe cl introducing this bug (https://skia-review.git.corp.google.com/c/skia/+/204720) was focused on caching the typefaces received with a global process wide `gTFCache` to save on performance and memory. The issue arose in that since the SkTypeface_Mac could be accessed across threads, it became thread unsafe.\n\nA test was added to this CL but removed as it was too large and took too long. It helps us keep it in the patch history for reference.\n\nBug: b/520535595\nBug: 520535595\nFixed: 524508854\nChange-Id: Id28aeed3d67a5a5246d22681f2c7ab0e6c133558\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1264296\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nReviewed-by: Kaylee Lubick \u003ckjlubick@google.com\u003e\n(cherry picked from commit ba3ee9b265f06ed1f16e4d7402d29ad7ac583e7a)\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1274456\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "21d6e9cfd5b80753a9d5f61b0e59eac5639ee654",
      "old_mode": 33188,
      "old_path": "src/ports/SkTypeface_mac_ct.cpp",
      "new_id": "288b3b82b03ccfc35042e4ca50fd818e9bc58fc5",
      "new_mode": 33188,
      "new_path": "src/ports/SkTypeface_mac_ct.cpp"
    },
    {
      "type": "modify",
      "old_id": "dde94656599968c5ea1a6bb967ef722e9ae526bb",
      "old_mode": 33188,
      "old_path": "src/ports/SkTypeface_mac_ct.h",
      "new_id": "e86e93d555ba6242c7b9220351710e7490d53505",
      "new_mode": 33188,
      "new_path": "src/ports/SkTypeface_mac_ct.h"
    }
  ]
}
