Skip to content

Commit a7afc6c

Browse files
committed
Return from get_diff by value
1 parent 6833af6 commit a7afc6c

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

src/goto-diff/change_impact.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,7 @@ change_impactt::change_impactt(
315315

316316
void change_impactt::change_impact(const irep_idt &function)
317317
{
318-
unified_difft::goto_program_difft diff;
319-
unified_diff.get_diff(function, diff);
318+
unified_difft::goto_program_difft diff = unified_diff.get_diff(function);
320319

321320
if(diff.empty())
322321
return;

src/goto-diff/unified_diff.cpp

+12-11
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,12 @@ unified_difft::unified_difft(
2727
{
2828
}
2929

30-
void unified_difft::get_diff(const irep_idt &function, goto_program_difft &dest)
31-
const
30+
unified_difft::goto_program_difft
31+
unified_difft::get_diff(const irep_idt &function) const
3232
{
33-
dest.clear();
34-
3533
differences_mapt::const_iterator entry = differences_map_.find(function);
3634
if(entry == differences_map_.end())
37-
return;
35+
return {};
3836

3937
goto_functionst::function_mapt::const_iterator old_fit =
4038
old_goto_functions.function_map.find(function);
@@ -50,20 +48,21 @@ void unified_difft::get_diff(const irep_idt &function, goto_program_difft &dest)
5048
new_fit == new_goto_functions.function_map.end() ? empty
5149
: new_fit->second.body;
5250

53-
get_diff(old_goto_program, new_goto_program, entry->second, dest);
51+
return get_diff(old_goto_program, new_goto_program, entry->second);
5452
}
5553

56-
void unified_difft::get_diff(
54+
unified_difft::goto_program_difft unified_difft::get_diff(
5755
const goto_programt &old_goto_program,
5856
const goto_programt &new_goto_program,
59-
const differencest &differences,
60-
goto_program_difft &dest) const
57+
const differencest &differences) const
6158
{
6259
goto_programt::instructionst::const_iterator old_it =
6360
old_goto_program.instructions.begin();
6461
goto_programt::instructionst::const_iterator new_it =
6562
new_goto_program.instructions.begin();
6663

64+
goto_program_difft dest;
65+
6766
for(differencest::const_reverse_iterator rit = differences.rbegin();
6867
rit != differences.rend();
6968
++rit)
@@ -89,6 +88,8 @@ void unified_difft::get_diff(
8988
break;
9089
}
9190
}
91+
92+
return dest;
9293
}
9394

9495
void unified_difft::output_diff(
@@ -98,8 +99,8 @@ void unified_difft::output_diff(
9899
const differencest &differences,
99100
std::ostream &os) const
100101
{
101-
goto_program_difft diff;
102-
get_diff(old_goto_program, new_goto_program, differences, diff);
102+
goto_program_difft diff =
103+
get_diff(old_goto_program, new_goto_program, differences);
103104

104105
bool has_diff = false;
105106
for(const auto &d : diff)

src/goto-diff/unified_diff.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class unified_difft
4646
typedef std::list<std::pair<goto_programt::const_targett, differencet>>
4747
goto_program_difft;
4848

49-
void get_diff(const irep_idt &function, goto_program_difft &dest) const;
49+
goto_program_difft get_diff(const irep_idt &function) const;
5050

5151
const goto_functionst &old_goto_functions;
5252
const namespacet ns_old;
@@ -67,11 +67,10 @@ class unified_difft
6767
const goto_programt &new_goto_program,
6868
differencest &differences) const;
6969

70-
void get_diff(
70+
goto_program_difft get_diff(
7171
const goto_programt &old_goto_program,
7272
const goto_programt &new_goto_program,
73-
const differencest &differences,
74-
goto_program_difft &dest) const;
73+
const differencest &differences) const;
7574

7675
void output_diff(
7776
const irep_idt &identifier,

0 commit comments

Comments
 (0)