in src/reader.rs [1060:1089]
fn get_line_count(
fun_edges: &mut [GcovEdge],
fun_blocks: &[GcovBlock],
blocks: &[usize],
) -> u64 {
let mut count: u64 = 0;
for b in blocks {
let block = &fun_blocks[*b];
if block.no == 0 {
count = block
.destination
.iter()
.fold(count, |acc, e| acc + fun_edges[*e].counter);
} else {
for e in &block.source {
let e = &fun_edges[*e];
let w = e.source;
if !blocks.contains(&w) {
count += e.counter;
}
}
}
for e in &block.destination {
let e = &mut fun_edges[*e];
e.cycles = e.counter;
}
}
count + GcovFunction::get_cycles_count(fun_edges, fun_blocks, blocks)
}