)]}'
{
  "commit": "46b683188210d175184340c9ecaa047ca975603e",
  "tree": "93fd01d040b615c90fc3f5bb3cd3261b8e546c44",
  "parents": [
    "bfbc6dfd2fceb92e5260a4bc4c93983de5aecb1a"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Fri Jul 03 21:37:54 2026 -0600"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Fri Jul 03 21:37:54 2026 -0600"
  },
  "message": "[subset/cff2] Support partial instancing\n\nRewrite charstring and private-dict blends against the instanced store:\neach value\u0027s default absorbs the folded (pinned-away) contribution — the\nold store\u0027s region scalars at the new default location — and its deltas\nare mapped onto the new region list through the per-VarData transform.\nBlend groups are re-chunked if needed to respect the 513 argument-stack\nlimit, since range limiting can split regions and grow the region count.\n\nOnly VarDatas that are still variable and actually referenced by the\nretained charstrings\u0027 or private dicts\u0027 blends survive, mirroring\nfontTools; vsindex ops are remapped accordingly, dropped when implied by\nthe FD\u0027s private dict, and re-emitted as a charstring prefix when not.\nIf no VarData survives, the store and the vstore top-dict op are dropped\nand all blends dissolve into static values.\n\nThe rebuilt CFF2ItemVariationStore carries itemless VarDatas — just\nregion indexes — as blend deltas live in the charstrings.\n\nVerified against fontTools varLib.instancer on AdobeVFPrototype,\nSourceSerif4Variable and fontTools\u0027 CFF2Instancer test fonts: outputs\nare value-identical or closer to the original than fontTools\u0027 own.\n\nFixes https://github.com/harfbuzz/harfbuzz/issues/4700\nCloses https://github.com/harfbuzz/harfbuzz/pull/4710\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a338b462b93292787dd12f1fc8807c0d797e97e",
      "old_mode": 33188,
      "old_path": "src/hb-cff2-interp-cs.hh",
      "new_id": "24152421598682d4d1b700b1979c9b9ddc230d33",
      "new_mode": 33188,
      "new_path": "src/hb-cff2-interp-cs.hh"
    },
    {
      "type": "modify",
      "old_id": "3140b9ca36f3d2f5ce8c58dafbdcd6e564a9597a",
      "old_mode": 33188,
      "old_path": "src/hb-subset-cff-common.hh",
      "new_id": "7abeafa1d3a589e8eb6953064638766b16c941b5",
      "new_mode": 33188,
      "new_path": "src/hb-subset-cff-common.hh"
    },
    {
      "type": "modify",
      "old_id": "1fe32f03e398db20aae99d867901b46c40545bd7",
      "old_mode": 33188,
      "old_path": "src/hb-subset-cff2.cc",
      "new_id": "8ca190ee08db61f6b4ee16bf14e870486570b7f3",
      "new_mode": 33188,
      "new_path": "src/hb-subset-cff2.cc"
    }
  ]
}
