)]}'
{
  "commit": "6d6b8fa24b8fd4a3e1dfd838d618c67d882ed88a",
  "tree": "e88339fd5f8cc1e63827f0155129b125ad943ad3",
  "parents": [
    "3331cbd8342374e00efedde979d96318eb61ef7a"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@google.com",
    "time": "Tue Jun 30 09:35:55 2026 -0700"
  },
  "committer": {
    "name": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 30 09:35:55 2026 -0700"
  },
  "message": "Fix CFX_Color operators to only affect active components\n\nThen add static factory methods to ensure correct number of\ncomponents for each color type.\n\nModify CFX_Color::operator- and CFX_Color::operator/ to only\nperform calculations on active components based on the color\ntype. This prevents unused components from becoming non-zero\n(e.g. when subtracting negative values), which previously\nbroke equality comparisons.\n\nRefactor CFX_Color::operator\u003d\u003d to only compare active\ncomponents, improving performance and robustness.\n\nAdd unit tests to verify the fix.\n\nTAG\u003dagy\nCONV\u003dd40b49d8-49d2-4abd-a129-5c10b9154156\n\nChange-Id: I446f06e86a5d039915a9e48e740971d6e704b637\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/151210\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fb5bf6d56e92f09ec5f1f344dd54e16deef66edc",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_apsettings.cpp",
      "new_id": "d5926f3ca3ac367dd8ff9c6ccd6ce3623a776bdf",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_apsettings.cpp"
    },
    {
      "type": "modify",
      "old_id": "242422895d44b90a51d3281c5116b9b42a37ce71",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_color_utils.cpp",
      "new_id": "16bda697b0ca27df5ea23e083b6e30d43c61c5b8",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_color_utils.cpp"
    },
    {
      "type": "modify",
      "old_id": "94e56e442f026fa2e632ededa67a4d7566bdbf9d",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_defaultappearance.cpp",
      "new_id": "ba88278d9b1728e0e6462e07730d5f7ea9a1aef3",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_defaultappearance.cpp"
    },
    {
      "type": "modify",
      "old_id": "0fa9d66f49a0d3f13b8fd88d2d4d86318396a30d",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_generateap.cpp",
      "new_id": "7b1fbbb5257ea7a41825d80cf3950f4fc25ec4be",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_generateap.cpp"
    },
    {
      "type": "modify",
      "old_id": "d54dbab5216a0bfeee3598b92f0baec91fa46e9b",
      "old_mode": 33188,
      "old_path": "core/fxge/BUILD.gn",
      "new_id": "08d3ecf0d3c37ab0569edfbec3591092098908a5",
      "new_mode": 33188,
      "new_path": "core/fxge/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f0287997e4ffbf91176730c63efce10356ccaeca",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_color.cpp",
      "new_id": "965f5b44f27e338e8d3625d1fe0215cdfba8da42",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_color.cpp"
    },
    {
      "type": "modify",
      "old_id": "39d4cd4c904d44f873b7d368210dd05feafc4227",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_color.h",
      "new_id": "60d3ff62a921063bac48aed0ee703bcfa408ff54",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_color.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6adc04355e1bb4c296a3c92adcbf69b5163c78a6",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_color_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "483d0b713cf5c4f2f7c6820af3f708a32303c43d",
      "old_mode": 33188,
      "old_path": "fpdfsdk/cpdfsdk_appstream.cpp",
      "new_id": "798265125f20761fe7bd0620ac55160e4a19927d",
      "new_mode": 33188,
      "new_path": "fpdfsdk/cpdfsdk_appstream.cpp"
    },
    {
      "type": "modify",
      "old_id": "6c126b79c7330928a8923305bb262a3fbf50c4e7",
      "old_mode": 33188,
      "old_path": "fpdfsdk/cpdfsdk_widget.cpp",
      "new_id": "7dce9e9fb3db56ad56518563cb010f2f2da55798",
      "new_mode": 33188,
      "new_path": "fpdfsdk/cpdfsdk_widget.cpp"
    },
    {
      "type": "modify",
      "old_id": "14ad57324037fd64c0d3724804bb7389fadb82cc",
      "old_mode": 33188,
      "old_path": "fpdfsdk/formfiller/cffl_formfield.cpp",
      "new_id": "21396530206a5e9a8429f3482ba3bca37f3a3eab",
      "new_mode": 33188,
      "new_path": "fpdfsdk/formfiller/cffl_formfield.cpp"
    },
    {
      "type": "modify",
      "old_id": "d2c4d283544ae44fab759c87618d5b2cd3af5280",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdf_annot.cpp",
      "new_id": "0db36772abc1a7111297f34a6681bc96ffece274",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdf_annot.cpp"
    },
    {
      "type": "modify",
      "old_id": "a6fc14bfe1bf9d0976c7947a4ed20321027b07a5",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_combo_box.cpp",
      "new_id": "156527898df40a73cde23b04472b05923996503c",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_combo_box.cpp"
    },
    {
      "type": "modify",
      "old_id": "05e69303b939ef412c2f5e3f2bfd6d7fc4f9d09c",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_wnd.cpp",
      "new_id": "e8a4b9ae7f94fc1d87ff0c99dc2037d97c7bede4",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_wnd.cpp"
    },
    {
      "type": "modify",
      "old_id": "b0c0dc00a98f3d3403b16a1d35a16fcd2aa745cc",
      "old_mode": 33188,
      "old_path": "fxjs/cjs_color.cpp",
      "new_id": "daaefae4b0c631156553e4687f47b732114707d5",
      "new_mode": 33188,
      "new_path": "fxjs/cjs_color.cpp"
    },
    {
      "type": "modify",
      "old_id": "e8c165879cf5d7902ea9ff2693bbc23eb75f235f",
      "old_mode": 33188,
      "old_path": "fxjs/cjs_field.cpp",
      "new_id": "6d1180d264f29d7dde72e385d6eca6b7d8a6b120",
      "new_mode": 33188,
      "new_path": "fxjs/cjs_field.cpp"
    }
  ]
}
