예제 #1
0
파일: rcovrt.c 프로젝트: CoralineAda/rcov
static void coverage_increase_counter_cached(char *sourcefile, int sourceline) {
  if(cached_file == sourcefile && cached_array && cached_array->len > sourceline) {
    cached_array->ptr[sourceline]++;
    return;
  }
  cached_file = sourcefile;
  cached_array = coverage_increase_counter_uncached(sourcefile, sourceline, 0);
}
예제 #2
0
파일: rcovrt.c 프로젝트: koteshwerrao/rcov
static void coverage_mark_caller() {
    struct FRAME *frame = ruby_frame;
    NODE *n;

    if (frame->last_func == ID_ALLOCATOR) frame = frame->prev;

    for (; frame && (n = frame->node); frame = frame->prev) {
        if (frame->prev && frame->prev->last_func) {
            if (frame->prev->node == n) {
                if (frame->prev->last_func == frame->last_func) continue;
            }
            coverage_increase_counter_uncached(n->nd_file, nd_line(n) - 1, 1);
        } else {
            coverage_increase_counter_uncached(n->nd_file, nd_line(n) - 1, 1);
        }
        break;
    }
}