Directly restore line table from repo to unit
commit55ca52bc4bface4993244b8f7ab2604282ddedda
authorHerman Venter <hermanv@fb.com>
Mon, 16 Sep 2013 23:18:12 +0000 (16 16:18 -0700)
committerSara Golemon <sgolemon@fb.com>
Tue, 17 Sep 2013 18:08:23 +0000 (17 11:08 -0700)
treeed79f2b0c3f930c6e24294b00c585fe41017035b
parent147b983f2b0f09e9ac35ee13081a06b208397dc9
Directly restore line table from repo to unit

The line table is a shorter version of the source location table and is needed for run time behavior beyond on-line debugging. When a unit is read from a repo, the line table is converted to a pseudo source location table, which is then converted back to a line table when the unit emitter creates the unit. This line table to source location table to line table conversion seems silly in itself. It also does not round trip faithfully, with the result that code that depends on the line table will behave differently the first time than the second time. This may have be the source of flaky tests in the past. Right now, the debugger's small step flow test fails if run a second time.

This diff gets rid of the conversion and directly propagates the line table from the repo to the unit.

Reviewed By: @mikemag

Differential Revision: D969062
hphp/runtime/vm/unit.cpp
hphp/runtime/vm/unit.h