)]}'
{
  "commit": "8940e7050b8a4e85fa8a79bd67a073525704a15f",
  "tree": "61f196fa02d95ca546f0ec5bd3c977939a125337",
  "parents": [
    "de89b1a49039a6be66d00c31a149ae5f799121ea"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Thu Aug 20 01:49:31 2026 -0600"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Thu Aug 20 01:49:31 2026 -0600"
  },
  "message": "[depend] Retain active glyph set storage\n\nDependency recursion moves each position glyph set onto the active stack.\nPopping the stack then destroys the set and its backing pages, so the next\nedge has to allocate them again.\n\nKeep constructed stack slots and track the active depth separately. Reused\nslots are cleared before use, preserving the previous empty-set semantics\nwhile retaining their allocations across sibling traversals.\n\nAfter contextual scratch pooling, this reduces Noto Nastaliq dependency\ncompilation from about 294ms to 277ms. Allocation calls fall from 1.19\nmillion to 371 thousand, and cumulative allocated bytes fall from 163MB\nto 80MB. Serialized output remains byte-identical.\n\nTests: meson test -C build (272/272)\n\nAssisted-by: OpenAI Codex \u003ccodex@openai.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea06aa0ef5ab3ca5a643ba72c8392cd1c59c3ec9",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-gsubgpos.hh",
      "new_id": "54cc39397e4b4395d3070f0f5300c7c65e0c5f20",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-gsubgpos.hh"
    }
  ]
}
