@@ -199,35 +199,38 @@ create or replace package body ut_coverage is
199199 end loop;
200200 end if;
201201
202- if not l_result.objects.exists(src_object.full_name) then
203- l_result.objects(src_object.full_name) := l_new_unit;
204- l_result.objects(src_object.full_name).owner := src_object.owner;
205- l_result.objects(src_object.full_name).name := src_object.name;
206- end if;
207- l_result.total_lines := l_result.total_lines + src_object.lines_count;
208- l_result.objects(src_object.full_name).total_lines := src_object.lines_count;
209- --map to results
210- line_no := l_line_calls.first;
211- if line_no is null then
212- l_result.uncovered_lines := l_result.uncovered_lines + src_object.lines_count;
213- l_result.objects(src_object.full_name).uncovered_lines := src_object.lines_count;
214- else
215- loop
216- exit when line_no is null;
217-
218- if l_line_calls(line_no) > 0 then
219- l_result.covered_lines := l_result.covered_lines + 1;
220- l_result.executions := l_result.executions + l_line_calls(line_no);
221- l_result.objects(src_object.full_name).covered_lines := l_result.objects(src_object.full_name).covered_lines + 1;
222- l_result.objects(src_object.full_name).executions := l_result.objects(src_object.full_name).executions + l_line_calls(line_no);
223- elsif l_line_calls(line_no) = 0 then
224- l_result.uncovered_lines := l_result.uncovered_lines + 1;
225- l_result.objects(src_object.full_name).uncovered_lines := l_result.objects(src_object.full_name).uncovered_lines + 1;
226- end if;
227- l_result.objects(src_object.full_name).lines(line_no) := l_line_calls(line_no);
228-
229- line_no := l_line_calls.next(line_no);
230- end loop;
202+ --if there are no file mappings or object was actually captured by profiler
203+ if a_coverage_options.file_mappings is null or l_line_calls.count > 0 then
204+ if not l_result.objects.exists(src_object.full_name) then
205+ l_result.objects(src_object.full_name) := l_new_unit;
206+ l_result.objects(src_object.full_name).owner := src_object.owner;
207+ l_result.objects(src_object.full_name).name := src_object.name;
208+ end if;
209+ l_result.total_lines := l_result.total_lines + src_object.lines_count;
210+ l_result.objects(src_object.full_name).total_lines := src_object.lines_count;
211+ --map to results
212+ line_no := l_line_calls.first;
213+ if line_no is null then
214+ l_result.uncovered_lines := l_result.uncovered_lines + src_object.lines_count;
215+ l_result.objects(src_object.full_name).uncovered_lines := src_object.lines_count;
216+ else
217+ loop
218+ exit when line_no is null;
219+
220+ if l_line_calls(line_no) > 0 then
221+ l_result.covered_lines := l_result.covered_lines + 1;
222+ l_result.executions := l_result.executions + l_line_calls(line_no);
223+ l_result.objects(src_object.full_name).covered_lines := l_result.objects(src_object.full_name).covered_lines + 1;
224+ l_result.objects(src_object.full_name).executions := l_result.objects(src_object.full_name).executions + l_line_calls(line_no);
225+ elsif l_line_calls(line_no) = 0 then
226+ l_result.uncovered_lines := l_result.uncovered_lines + 1;
227+ l_result.objects(src_object.full_name).uncovered_lines := l_result.objects(src_object.full_name).uncovered_lines + 1;
228+ end if;
229+ l_result.objects(src_object.full_name).lines(line_no) := l_line_calls(line_no);
230+
231+ line_no := l_line_calls.next(line_no);
232+ end loop;
233+ end if;
231234 end if;
232235
233236
0 commit comments