)]}'
{
  "commit": "c2d0ace1e7d1d645797c6ba94afd849ad7ae4d3d",
  "tree": "ea62b6472be8f6e3699d6eb69b78838eb36d7049",
  "parents": [
    "5e43d016589db2c613c98f9916afd729a36e781a"
  ],
  "author": {
    "name": "Sylvain Defresne",
    "email": "sdefresne@chromium.org",
    "time": "Wed Mar 04 16:36:35 2020 +0100"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Mar 04 16:20:01 2020 +0000"
  },
  "message": "Fix crash in \"gn gen --ide\u003dxcode\" when project is malformed\n\nAs found while investigating https://crbug.com/1056925, if the\nproject was malformed, \"gn gen --ide\u003dxcode\" could crash due to\nsome undefined behaviour (likely dereferencing an uninitialised\npointer).\n\nThis was due to FindApplicationTargetByName() using DCHECK to\nenforce a property of the project when said property is not\nunder the control of the programmer but under the control of\nthe user writing the project\u0027s BUILD.gn files.\n\nInstead change the function implementation to return an error\nif the expected property is not verified. That error is then\npropagated back to the \"gn gen\" implementation and displayed\nto the user.\n\nAll other uses of DCHECK/NOTREACHED in xcode_writer.cc have\nbeen inspected to verify they correspond to assertion about\nthe state of the code and do not depend on the properties of\nthe project\u0027s BUILD.gn files.\n\nBug: 150\nChange-Id: Ibe711f2d380ef0ed5dca637799563223c248ec7d\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/7560\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ffcc581feb4d74294944368569254d01e98e4aa",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_writer.cc",
      "new_id": "849aca78d8061f66a7d8d4e7f91092d8badb36b9",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "e391c565d0e1cd5d803a8699f6e59f069d772c57",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_writer.h",
      "new_id": "b50b3940a506d23e1bf3f99c81b76eed1193c41c",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_writer.h"
    }
  ]
}
