class Rubinius::Coverage::CFG::BasicBlock
Attributes
count[RW]
enter_ip[RW]
exit_ip[RW]
left[RW]
lines[RW]
right[RW]
Public Class Methods
new(enter_ip)
click to toggle source
# File lib/rubinius/coverage.rb, line 110 def initialize(enter_ip) @enter_ip = @exit_ip = enter_ip @lines = [] @count = 0 end
Public Instance Methods
coverage(code, call_sites)
click to toggle source
# File lib/rubinius/coverage.rb, line 116 def coverage(code, call_sites) total = code.lines.size - 2 i = 0 while i < total if (@enter_ip < code.lines[i+2] and @exit_ip >= code.lines[i]) or (code.lines[i+2] == 0 and @enter_ip == 0) line = code.lines[i+1] @lines << line unless @lines.include? line end i += 2 end call_sites.each do |cs| if cs.ip >= @enter_ip and cs.ip <= @exit_ip cs_count = cs.invokes + cs.hits + cs.misses @count = cs_count if cs_count > @count end end end