)]}'
{
  "commit": "3dffb9f5af44b93db3e0e6cc806380fcb7687d44",
  "tree": "4e05c0aa100e981394dd5d56cb2c8a1a2f0e4e6b",
  "parents": [
    "fc4a0e441c4998e520a5307bbd0920b37f24546d"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Thu Oct 08 23:09:00 2020 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Oct 08 23:09:00 2020 +0000"
  },
  "message": "Completely re-implement CFXA_MapModule data storage\n\nUse C++ idioms in place of C-Style callbacks and memcpys.\nThere are only three kinds of things stored in these maps,\nso we can cheat by introducing a map per type, rather than\nre-inventing the equivalent of base::Value.\n\n-- remove inline strings in buffer to avoid copies.\n-- pass some widestrings by reference where we have them.\n-- ensure key isn\u0027t in more that one map.\n\nChange-Id: I1feda8a40997aa6c027e07fa859ed67655d36928\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/74850\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a90d47b3c8b3bc6b594a12ed10084cae76aa36f",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cfxjse_nodehelper.cpp",
      "new_id": "f6b6932023c59c4d4a5735916e9065bb5325667c",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cfxjse_nodehelper.cpp"
    },
    {
      "type": "modify",
      "old_id": "44175306bbb1e286f34f5f18307398c3e3032888",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_form.cpp",
      "new_id": "6cb6c6b221c7dc19234f13fde77cf604ba7d352b",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_form.cpp"
    },
    {
      "type": "modify",
      "old_id": "4fb2dcc486d543cd52911509f8e7b33b3d51431e",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_model.cpp",
      "new_id": "1c1ae19907f3a1bd1fbad38ea5c85f2900a4230a",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_model.cpp"
    },
    {
      "type": "modify",
      "old_id": "1af69d99af8e63f148b9d93653d89a10188f663f",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_node.cpp",
      "new_id": "50341652daf15599cc1c245c9a9f35a1b18d68c2",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_node.cpp"
    },
    {
      "type": "modify",
      "old_id": "03bb379e54577f85c5b80786e0c3b6e5775bbeab",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_object.cpp",
      "new_id": "db7deeb6abb227f970673834f8b05ce2da80ac56",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_object.cpp"
    },
    {
      "type": "modify",
      "old_id": "140a17a95a9644c2a37ea71bc28a91c64f2603b4",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_object.h",
      "new_id": "c4281ee6a279537d72b880d74f65653c7bdbddf7",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_object.h"
    },
    {
      "type": "modify",
      "old_id": "6a7453290103a6f1fefd720b05a9a9f937884cbf",
      "old_mode": 33188,
      "old_path": "xfa/fxfa/parser/cxfa_document_builder.cpp",
      "new_id": "dd602d1c37a575e0150ba9bffa5c5a42fa5b3447",
      "new_mode": 33188,
      "new_path": "xfa/fxfa/parser/cxfa_document_builder.cpp"
    }
  ]
}
