Another crash fix for duplicate edges. Fixes #939.
authorNico Weber <nicolasweber@gmx.de>
Thu, 19 Mar 2015 23:42:06 +0000 (16:42 -0700)
committerNico Weber <nicolasweber@gmx.de>
Thu, 19 Mar 2015 23:42:06 +0000 (16:42 -0700)
commitf5c5789aad8001e15a7e4f1ee0dee0c2b688e993
tree9e26b5bbf6486a710eba81c0d0214b2fb3f3e348
parent20a840539ce87a343b414f52a3330706a731b044
Another crash fix for duplicate edges. Fixes #939.

Patch #933 fixed a crash with duplicate edges by not adding edges to the
graph if all the edge's outputs are already built by other edges.
However, it added the edge to the out_edges of the edge's input nodes
before deleting it, letting inputs refer to dead edges.

To fix, move the check for deleting an edge above the code that adds
inputs.  Expand VerifyGraph() to check that nodes don't refer to edges
that aren't present in the state.
src/manifest_parser.cc
src/manifest_parser_test.cc
src/state.cc
src/test.cc