)]}'
{
  "commit": "73bd37c824051aac631abaf567bab7dcd02093df",
  "tree": "2bb573a907c2977e7dcff6d160dc7330d441c3bb",
  "parents": [
    "3dd6ef0648987f3c0b4b74aada0406a90e7947bd"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Wed Jul 03 22:38:54 2019 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Jul 03 22:38:54 2019 +0000"
  },
  "message": "Make CPDF_Color saner.\n\nStop casting a vector of floats to a PatternValue object type. Stop\nperforming cleanup for said PatternValue outside of the class itself.\nUse std::vector in place of mallocs.\n\nIn turn, this requires making CPDF_Pattern and its subclasses\nretainable, so that the cleanups happen automatically, which is\nmore straightforward than trying to move the old cleanup logic\ninto the PatternValue dtor.\n\nIn turn, make the doc page data weakly cache the CPDF_Patterns by\nusing the Observable pattern.\n\nChange-Id: Idd1095cee3bd497392ea1f120bd452f3f34ce104\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56750\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "96804dcbf6cf5bbbedb8a2df537cd6c1740232b0",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_color.cpp",
      "new_id": "cfa64222e85541919495c6e04b2df3328d3ea53a",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_color.cpp"
    },
    {
      "type": "modify",
      "old_id": "d3cfc941ca76a472d6cef14b495f27d2cc5e44ff",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_color.h",
      "new_id": "b533d084beeeb64493fa1cb720308aa2300bf079",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_color.h"
    },
    {
      "type": "modify",
      "old_id": "338025fe19d93ee04443f7df4d5ffeb70badaa19",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_colorspace.cpp",
      "new_id": "95af192940a806d851ea50f8132135e8726dcbcf",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_colorspace.cpp"
    },
    {
      "type": "modify",
      "old_id": "d3057fcb5986864c1e24f54c77052362790298a8",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_colorspace.h",
      "new_id": "d86747bc640ba284eac3a3028687840adb967c63",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_colorspace.h"
    },
    {
      "type": "modify",
      "old_id": "706e5c9dd8c0a122295a0a1e800b7a67b27294a5",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_colorstate.cpp",
      "new_id": "50dbb717476250a57f99f84ea750c2dea2d8a4d7",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_colorstate.cpp"
    },
    {
      "type": "modify",
      "old_id": "43244cceece38b7d87242c6caf568216d3796d83",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_colorstate.h",
      "new_id": "f0f6ebdd0f83b1342a910fed7ad3cb96aaae3e03",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_colorstate.h"
    },
    {
      "type": "modify",
      "old_id": "a2ed1b92f95815b8012793f8e6896d099df15d32",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_docpagedata.cpp",
      "new_id": "bbd9ab36922d90ad1471154a54112b216705682f",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_docpagedata.cpp"
    },
    {
      "type": "modify",
      "old_id": "91403723b46121957b69e44643e2cd45e107916e",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_docpagedata.h",
      "new_id": "d25fcdca93ef024eaad7380a727533ec5a793744",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_docpagedata.h"
    },
    {
      "type": "modify",
      "old_id": "84e641af55ebe2f19fd239af7c413ad2b7f94e1d",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_pattern.cpp",
      "new_id": "36ecc98d586c9cfcf571df21c1bd287931cfa7d2",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_pattern.cpp"
    },
    {
      "type": "modify",
      "old_id": "3882b8135a380fc5ae4b034bfdd6396027f681d4",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_pattern.h",
      "new_id": "7e3eb7b63985e18a72b5bc0a296bd2fad411251c",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_pattern.h"
    },
    {
      "type": "modify",
      "old_id": "cd8a921a2750774932089658ebb9dc07501be6a8",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_patterncs.cpp",
      "new_id": "1c5dc6ce6d416ad3a153420509a48b3744814bb2",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_patterncs.cpp"
    },
    {
      "type": "modify",
      "old_id": "c246870469e1406fe2d681d5a244d97c9ca43da1",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_shadingobject.h",
      "new_id": "072a025dd1e26d5d765f75b57f939c1692b6b71e",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_shadingobject.h"
    },
    {
      "type": "modify",
      "old_id": "f3da1acf9be6997bd0846a947c5f441d140e26cc",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_shadingpattern.cpp",
      "new_id": "86f51065162cf883347d94c237ff964708d12f78",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_shadingpattern.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d8fc8eb45db634a87991ccfbe9f3f14cea3f27a",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_shadingpattern.h",
      "new_id": "392aa2741dce6554b57e7515cd5c6c5f26ae0bfd",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_shadingpattern.h"
    },
    {
      "type": "modify",
      "old_id": "b72b2bc989b70608be6565668707bf0417f2d74f",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_streamcontentparser.cpp",
      "new_id": "6eba6dd8de3bde416d2d14737e4da55a54f9f78f",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_streamcontentparser.cpp"
    },
    {
      "type": "modify",
      "old_id": "45cf0bab0cda2b16ce520975e3ab8e61f09bed26",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_streamcontentparser.h",
      "new_id": "6e4b46f471cca4d7b0f55e4d7a7f958b4a64e686",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_streamcontentparser.h"
    },
    {
      "type": "modify",
      "old_id": "9bf9a86f0e23735d0feacd63aae67ef9908550f7",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_tilingpattern.cpp",
      "new_id": "eca6478de1c83248d46386be647b8bcd68a96676",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_tilingpattern.cpp"
    },
    {
      "type": "modify",
      "old_id": "35dd9e05886d0a4cda838a453f596f6bd0e3a8ee",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_tilingpattern.h",
      "new_id": "134da8e9d6297ed63ef16385af50285173cc17c7",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_tilingpattern.h"
    },
    {
      "type": "modify",
      "old_id": "865f72aed6bb4cdb27f2bb1e56210b057c2926d9",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_imagerenderer.cpp",
      "new_id": "ee8879499e957b0163bb4d51b20c8128e1926cf9",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_imagerenderer.cpp"
    },
    {
      "type": "modify",
      "old_id": "bfedfc145b0a7218a960e3b177fb3ee905dd8b09",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_imagerenderer.h",
      "new_id": "d7c7bf0ad01447524f1fdd3e39141cad63f4d45d",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_imagerenderer.h"
    }
  ]
}
