)]}'
{
  "commit": "319b91e7121022f622f1010f44e7e7457ff62bf4",
  "tree": "ff2de98861c3895b821fdfe6e640c094bbd5c3b6",
  "parents": [
    "2132c5c9e72db8168c0b7a5cdf362e1d25430a4d"
  ],
  "author": {
    "name": "Vincent Rabaud",
    "email": "vrabaud@google.com",
    "time": "Fri Feb 27 22:07:04 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Feb 27 13:07:04 2026 -0800"
  },
  "message": "Replace RGBImagePtr by RGBImageCleanup\n\nAlthough RGBImagePtr, defined using std::unique_ptr, is correct, it is\nconfusing because it does not free the avifRGBImage struct. Since the\navifRGBImage struct is intended to be allocated on the stack, we should\nnot address this by forcing the users of RGBImagePtr to allocate\navifRGBImage from the heap.\n\nReplace RGBImagePtr by RGBImageCleanup, which is modeled after\nabsl::Cleanup and is a lightweight cleanup object whose destructor\ncalls avifRGBImageFreePixels() on the associated avifRGBImage struct.\n\nCo-authored-by: Wan-Teh Chang \u003cwtc@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f369978cba99dee65a1146d7f5cf6c148ffb0816",
      "old_mode": 33188,
      "old_path": "include/avif/avif_cxx.h",
      "new_id": "7a7723c5ed941cf5e232fd3f96ddb6724e8fe987",
      "new_mode": 33188,
      "new_path": "include/avif/avif_cxx.h"
    },
    {
      "type": "modify",
      "old_id": "7a08621e7a9ca4959348343e6fefb098ff521aa6",
      "old_mode": 33188,
      "old_path": "tests/gtest/avifbasictest.cc",
      "new_id": "ef3031113ab90b41128e3bdd284358c74fbe54c3",
      "new_mode": 33188,
      "new_path": "tests/gtest/avifbasictest.cc"
    }
  ]
}
