)]}'
{
  "commit": "a5d7ad3aa8feb08a14b5cca173d673054c1ade23",
  "tree": "259f0c17f5b7a2e09f80948f8b5cc8a04fdb7874",
  "parents": [
    "aebace3bd14eaf72d43f63d90700cd1b0fa049ca"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Thu Sep 13 17:41:52 2018 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Sep 13 17:41:52 2018 +0000"
  },
  "message": "Introduce FX_Number class as a replacement for FX_atonum().\n\nThe issue with FX_atonum() is that it doesn\u0027t return any information\nabout whether it range-checked its integer values as a signed or\nunsigned type, even though it knows this as part of its processing.\n\nRather than adding another out parameter to that function, create\na class to hold all this information together.\n\nThis is the first place things went astray while diagnosing\nbug 882959, in that a large positive value was cast to float as a\nnegative value. Unfortunately, this doesn\u0027t affect the related bug,\nbut is a step in the right direction.\n\nChange-Id: I0977ec8fccf85e2632a962507bdd30a1cbe6d33c\nReviewed-on: https://pdfium-review.googlesource.com/42353\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1d4573a8f213ff8df04d04c519e318ed25f8b95d",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "6df4732d71ced712503cb715ab9246c33c6c0af3",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "2244232ecb51c4c42d7580037a924a5f4c3f11b3",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_streamcontentparser.cpp",
      "new_id": "20892cc264c344afcb6927be4fcbb02caa137cf7",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_streamcontentparser.cpp"
    },
    {
      "type": "modify",
      "old_id": "a129894dbac4afd3b644e893959ba77f2aa66512",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_streamcontentparser.h",
      "new_id": "6417043305f4cbe230ec0fd305b4f3b6f079b54b",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_streamcontentparser.h"
    },
    {
      "type": "modify",
      "old_id": "b75ce0766a2347c4dbda287c9067235abb45d739",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/parser/cpdf_number.cpp",
      "new_id": "23c2609e25771ce1289ea817a3cee010c08b47e7",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/parser/cpdf_number.cpp"
    },
    {
      "type": "modify",
      "old_id": "b5faf82bb2b4345c2ad0b06c3030220dd21611d0",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/parser/cpdf_number.h",
      "new_id": "724ae9f1f130186e9beea2a3733cbf64d28f0f54",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/parser/cpdf_number.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "68d5bd9b32cf54b91d90bc7a69396614c2f98063",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_number.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c789b4130cfdc75e7db7d52905698a4904efa08",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_number.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83702dadcf23908184313d9bcf60ca2bb958ace2",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_number_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9993f9ab887f3dc59979dca806f6ff45cfc60f7",
      "old_mode": 33188,
      "old_path": "core/fxcrt/fx_string.cpp",
      "new_id": "31eb8e917dfe6aa9c6eff70c9b451187c319fb07",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_string.cpp"
    },
    {
      "type": "modify",
      "old_id": "2cf823738a159cd476ffd53c6ec4b5e090976ab7",
      "old_mode": 33188,
      "old_path": "core/fxcrt/fx_string.h",
      "new_id": "670aa4d4b7d3580489c145a1000680ace9abcfb3",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_string.h"
    },
    {
      "type": "modify",
      "old_id": "60e7f07523163a997f85690c94ea2de2a266767b",
      "old_mode": 33188,
      "old_path": "core/fxcrt/fx_string_unittest.cpp",
      "new_id": "3059de3e5c67d3c624c44685abac4001071bf5f8",
      "new_mode": 33188,
      "new_path": "core/fxcrt/fx_string_unittest.cpp"
    }
  ]
}
