)]}'
{
  "commit": "c76b3a29a942c8965b8d174ecb3b52d87c38fe52",
  "tree": "502050c3a4f91528d446ae40af43f4827654652d",
  "parents": [
    "edc8c18ef88262fc467a30ab74f05080d6aea6cf"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Sat Apr 18 03:09:35 2026 -0600"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Sat Apr 18 03:09:35 2026 -0600"
  },
  "message": "[vector] Content-based dedup, remove font reference caching\n\nReplace glyph-ID-based dedup with content-based dedup for SVG\npath definitions and color glyph groups.  Path/paint output is\nhashed and compared byte-for-byte against existing defs;\nidentical content reuses the same def regardless of glyph ID.\n\nThis eliminates the font reference held by draw/paint contexts\n(cached_font + hb_font_reference), which was keeping the font\nand its face alive longer than the caller expected.  No font\npointer is stored at all now.\n\nAlso removes changed() — with content-based dedup, foreground\nand palette changes produce different content that naturally\nwon\u0027t match cached entries.\n\nAssisted-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e38c750c920014724cb05ba5266db32b1ea826c",
      "old_mode": 33188,
      "old_path": "src/hb-vector-draw.cc",
      "new_id": "918ba82a66e4fdbc4a9d880f27ad8aed70ae8eed",
      "new_mode": 33188,
      "new_path": "src/hb-vector-draw.cc"
    },
    {
      "type": "modify",
      "old_id": "c4a7784e0cbb81f176245ad81873db0130072adc",
      "old_mode": 33188,
      "old_path": "src/hb-vector-draw.hh",
      "new_id": "5ccf8181353ff40e635b184a180e0d68e77594fc",
      "new_mode": 33188,
      "new_path": "src/hb-vector-draw.hh"
    },
    {
      "type": "modify",
      "old_id": "db0988198c6061c3f26c3db19c8a6a9831f1cc66",
      "old_mode": 33188,
      "old_path": "src/hb-vector-paint-svg.cc",
      "new_id": "00aece44b1b5baeea4cb40d48eac9209e2e7f2d2",
      "new_mode": 33188,
      "new_path": "src/hb-vector-paint-svg.cc"
    },
    {
      "type": "modify",
      "old_id": "42ed579e0ad52f79ae15d052a1bde044330f9a83",
      "old_mode": 33188,
      "old_path": "src/hb-vector-paint.cc",
      "new_id": "fe07778e7f7a0c028e75f995cba110c77c193c73",
      "new_mode": 33188,
      "new_path": "src/hb-vector-paint.cc"
    },
    {
      "type": "modify",
      "old_id": "83c529f758957dbfc22a776200ff7de9c88b0bf0",
      "old_mode": 33188,
      "old_path": "src/hb-vector-paint.hh",
      "new_id": "d509a94b50078e7bfed11dd861b8f78b4aa795ef",
      "new_mode": 33188,
      "new_path": "src/hb-vector-paint.hh"
    },
    {
      "type": "modify",
      "old_id": "53b463599e389681939ac8d36db9fa24d3a20838",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/cff1.svg",
      "new_id": "e16414b9f8e43caa6c9ed9c85302a1bb4b96f36c",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/cff1.svg"
    },
    {
      "type": "modify",
      "old_id": "a64f73d4b662cd33cfe6a8571450ed14e444a96d",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/cff2-var-cntr.svg",
      "new_id": "10e0e89d4b8c62287c00b2f6b96a58ba6f34ed96",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/cff2-var-cntr.svg"
    },
    {
      "type": "modify",
      "old_id": "fb3023f53c4b1c83df0adda3ae9cd4d5b5499614",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/default.svg",
      "new_id": "57508cd370c22e274697855d9bf2767080465ba6",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/default.svg"
    },
    {
      "type": "modify",
      "old_id": "f6aa8403a612b1125a2b9da218d3f78fe06b12f2",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/glyf-var-wght900.svg",
      "new_id": "ca10fd1f773127be04913ab29913eb86a58dd4e1",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/glyf-var-wght900.svg"
    },
    {
      "type": "modify",
      "old_id": "e378363c27c4931c9746ff3c56dd574abfed657f",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/glyf-vvar-ttb-wght900.svg",
      "new_id": "8eba4a832e482b4d65cd21194068caf224915ce3",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/glyf-vvar-ttb-wght900.svg"
    },
    {
      "type": "modify",
      "old_id": "eceb49a12607b619339348bbf7cd522e550dda09",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/handwriting-cff-colr-1.svg",
      "new_id": "3c26d89f3283ea1a2d6f1a0e4577e59fa8351e81",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/handwriting-cff-colr-1.svg"
    },
    {
      "type": "modify",
      "old_id": "9f84e3ae3f64b51ebda7af0e05445af95c25806b",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/handwriting-glyf-colr-1.svg",
      "new_id": "2819284652d6358e89c1e645ccc77842a237d38f",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/handwriting-glyf-colr-1.svg"
    },
    {
      "type": "modify",
      "old_id": "eb0f5fdf6e34f41e926a1fc6e35f9ece1d998895",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/iran-nastaliq-y-offsets.svg",
      "new_id": "51abc90594da532095823f74b59258b6005068cc",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/iran-nastaliq-y-offsets.svg"
    },
    {
      "type": "modify",
      "old_id": "d7f581ce09489ae18cbebe72d414c9f8af413c18",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/multiline.svg",
      "new_id": "77991bc44ab9c66fb90a27e980fed43afad5358f",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/multiline.svg"
    },
    {
      "type": "modify",
      "old_id": "add4db4edd37018a75d53ee40a8ffd65eb1f1d9d",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/ttb.svg",
      "new_id": "8fee1a62af32e6ec2d6fd4dde8c1d0aa8e932b1e",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/ttb.svg"
    },
    {
      "type": "modify",
      "old_id": "fb3023f53c4b1c83df0adda3ae9cd4d5b5499614",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/basic/upem-default.svg",
      "new_id": "57508cd370c22e274697855d9bf2767080465ba6",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/basic/upem-default.svg"
    },
    {
      "type": "modify",
      "old_id": "97807fb1544160f5a8c2d4a81b01be2ec263596e",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/varc/conditional-default.svg",
      "new_id": "971950e2fc3fbae2899a85447912fc8238496a30",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/varc/conditional-default.svg"
    },
    {
      "type": "modify",
      "old_id": "4142ff16943bb911b1c521e90283c37cbc25a5ec",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/varc/conditional-wght840p3.svg",
      "new_id": "ec8e37652ecd541a5048c9ce286ec820875299bb",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/varc/conditional-wght840p3.svg"
    },
    {
      "type": "modify",
      "old_id": "9223f3291e9cc901ffbae1be081c2d6626d63e2a",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/varc/default.svg",
      "new_id": "25cca12837402bc49b42e1823b8aa650cb17ba54",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/varc/default.svg"
    },
    {
      "type": "modify",
      "old_id": "4a612a91c237e7b22f31f91aac0677877f64a4b1",
      "old_mode": 33188,
      "old_path": "test/vector/data/expected/varc/wght840p3.svg",
      "new_id": "e7466ae318d3cafef31fd214fffbf6eccedf9989",
      "new_mode": 33188,
      "new_path": "test/vector/data/expected/varc/wght840p3.svg"
    }
  ]
}
