From 54b757b90bdef2077dbbe24637ecf29884750c2c Mon Sep 17 00:00:00 2001 From: Josef Weidendorfer Date: Fri, 14 Jan 2011 18:48:43 +0000 Subject: [PATCH] Fix bug 263099 Correct a beginners PERL bug ;-) Need to create new arrays, not just copying references to ARRAYs around, which are modified later on... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11497 --- callgrind/callgrind_annotate.in | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/callgrind/callgrind_annotate.in b/callgrind/callgrind_annotate.in index afa9e04bff..9d711e2ec9 100644 --- a/callgrind/callgrind_annotate.in +++ b/callgrind/callgrind_annotate.in @@ -541,14 +541,12 @@ sub read_input_file() if ($curr_call_counter>0) { # print "Read ($curr_name => $curr_cname) $curr_call_counter\n"; - if (defined $call_CCs{$curr_name,$curr_cname}) { - add_array_a_to_b($CC, $call_CCs{$curr_name,$curr_cname}); - $call_counter{$curr_name,$curr_cname} += $curr_call_counter; - } - else { - $call_CCs{$curr_name,$curr_cname} = $CC; - $call_counter{$curr_name,$curr_cname} = $curr_call_counter; + if (!defined $call_CCs{$curr_name,$curr_cname}) { + $call_CCs{$curr_name,$curr_cname} = []; + $call_counter{$curr_name,$curr_cname} = 0; } + add_array_a_to_b($CC, $call_CCs{$curr_name,$curr_cname}); + $call_counter{$curr_name,$curr_cname} += $curr_call_counter; my $tmp = $called_from_line->{$curr_file,$curr_line_num}; if (!defined $tmp) { @@ -557,14 +555,12 @@ sub read_input_file() $tmp = {} unless defined $tmp; $$tmp{$curr_cname} = 1; $called_from_line->{$curr_file,$curr_line_num} = $tmp; - if(defined $call_CCs{$curr_name,$curr_cname,$curr_line_num}) { - add_array_a_to_b($CC, $call_CCs{$curr_name,$curr_cname,$curr_line_num}); - $call_counter{$curr_name,$curr_cname,$curr_line_num} += $curr_call_counter; - } - else { - $call_CCs{$curr_name,$curr_cname,$curr_line_num} = $CC; - $call_counter{$curr_name,$curr_cname,$curr_line_num} = $curr_call_counter; - } + if (!defined $call_CCs{$curr_name,$curr_cname,$curr_line_num}) { + $call_CCs{$curr_name,$curr_cname,$curr_line_num} = []; + $call_counter{$curr_name,$curr_cname,$curr_line_num} = 0; + } + add_array_a_to_b($CC, $call_CCs{$curr_name,$curr_cname,$curr_line_num}); + $call_counter{$curr_name,$curr_cname,$curr_line_num} += $curr_call_counter; $curr_call_counter = 0; -- 2.47.3