class AdLint::Ld::BuildXRefGraphPhase

Public Class Methods

new(phase_ctxt) click to toggle source
Calls superclass method AdLint::Ld::LdPhase::new
# File lib/adlint/ld/phase.rb, line 115
def initialize(phase_ctxt)
  super(phase_ctxt, "ld2")
end

Private Instance Methods

do_execute(phase_ctxt, monitor) click to toggle source
# File lib/adlint/ld/phase.rb, line 120
def do_execute(phase_ctxt, monitor)
  builder = ObjectXRefGraphBuilder.new(
    phase_ctxt[:ld_variable_map], phase_ctxt[:ld_function_map],
    phase_ctxt[:ld_call_graph])
  phase_ctxt[:metric_fpaths].each do |fpath|
    builder.execute(fpath)
    monitor.progress += 1.0 / phase_ctxt[:metric_fpaths].size
  end
  phase_ctxt[:ld_xref_graph] = builder.graph
ensure
  DebugUtil.dump_variable_reference_graph(phase_ctxt)
end