)]}'
{
  "commit": "cdc65b52c615c41c3d31ee509b844643c1d9513a",
  "tree": "b9001f01007f20171c178201bb4b0dcf41da49cb",
  "parents": [
    "c388093a05fa250e588ae0a4ba0b6ccab65486d9"
  ],
  "author": {
    "name": "Daniel Hosseinian",
    "email": "dhoss@chromium.org",
    "time": "Thu Feb 27 08:10:47 2020 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Feb 27 08:10:47 2020 +0000"
  },
  "message": "Space-efficiently destroy chained CXFA_FMSimpleExpression instances\n\nDestroy CXFA_FMChainableExpression objects iteratively in linear time\nand constant space.\n\nCurrently, chainable CXFA_FMSimpleExpression objects are destroyed\nrecursively, allowing the stack to overflow if the chain is long\nenough. This change allows for efficient destruction without the need\nto lower the FM2JS parser depth limit.\n\nFixed: chromium:1052724\nChange-Id: I44753693910230d961c8d4ea9aeb7a6305f9d1e5\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/66990\nCommit-Queue: Daniel Hosseinian \u003cdhoss@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac91d94349a6d5cabdb8a3b7ff414491ccf1aebb",
      "old_mode": 33188,
      "old_path": "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.cpp",
      "new_id": "e29e5dcabc6372a266e858d81d09b349d397f1ac",
      "new_mode": 33188,
      "new_path": "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.cpp"
    },
    {
      "type": "modify",
      "old_id": "49e2560a8e9ce1ee6156c15ce0bbe6d03f493fbd",
      "old_mode": 33188,
      "old_path": "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h",
      "new_id": "a970029e807f116794bb682ffbfb320aa5292ce8",
      "new_mode": 33188,
      "new_path": "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h"
    }
  ]
}
