)]}'
{
  "commit": "728097ea09e8df318c713053625c1557499f0c2b",
  "tree": "17adcf64b86506496985eddf60240acdf678fad1",
  "parents": [
    "bebe8993113fa0a7baccd34a31210dd53dc3f550"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Thu Nov 06 12:27:16 2025 -0800"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Nov 06 12:27:16 2025 -0800"
  },
  "message": "Delete CFX_Face::ClearExternalStream()\n\nIt turns out ClearExternalStream() is a memory management function that\ncoerces FreeType into thinking an external FT_StreamRec_ is internal to\nFreeType, and thus letting FreeType free it.\n\nAfter deleting ClearExternalStream() and its callers, memory will leak.\nFix this by making the code that owns the CFX_Face associated with the\nFT_StreamRec_ also own the FT_StreamRec_. Then the caller can free the\ntwo together in the right order.\n\nSince FreeType is no longer the one freeing the memory, there is no need\nto use ft_scalloc() and ft_sfree() for manual memory management.\nAllocate the FT_StreamRec_ with std::make_unique() instead.\n\nThis is an intermediate step towards consolidating CFX_Face::Open()\ncallers. It makes the two callers that use `FT_OPEN_STREAM` manage\nmemory in a more consistent manner.\n\nBug: 452087741\nChange-Id: Idce8936528270123725dd3ca856c3b8f6c410f77\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/137711\nReviewed-by: Tom Sepez \u003ctsepez@chromium.org\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b7fa703493465dd1937ff6c30b365df2c5818f0",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_face.cpp",
      "new_id": "602265a070b1761b5f5dd42a6517df3f34be3da0",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_face.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c23eaa53fcbc7c4b75c2bc18c404efb72a0f323",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_face.h",
      "new_id": "ee10f1c932c43ea1c19a53c0358fe73d7e54e0cc",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_face.h"
    },
    {
      "type": "modify",
      "old_id": "e5b486aeb88129d5f1f88a0fb6a442a9a8b5b96e",
      "old_mode": 33188,
      "old_path": "xfa/fgas/font/cfgas_fontmgr.cpp",
      "new_id": "b36b6185f61fcfefb1582e263bbcda41eafbd687",
      "new_mode": 33188,
      "new_path": "xfa/fgas/font/cfgas_fontmgr.cpp"
    },
    {
      "type": "modify",
      "old_id": "fd39700a0567df2e8e5e6dc84b62c337c7592284",
      "old_mode": 33188,
      "old_path": "xfa/fgas/font/cfgas_fontmgr.h",
      "new_id": "e70a021123efce12861fd8f42973e746cfba75ca",
      "new_mode": 33188,
      "new_path": "xfa/fgas/font/cfgas_fontmgr.h"
    }
  ]
}
