|
From: <sv...@va...> - 2011-01-14 18:48:53
|
Author: weidendo
Date: 2011-01-14 18:48:43 +0000 (Fri, 14 Jan 2011)
New Revision: 11497
Log:
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...
Modified:
trunk/callgrind/callgrind_annotate.in
Modified: trunk/callgrind/callgrind_annotate.in
===================================================================
--- trunk/callgrind/callgrind_annotate.in 2011-01-11 18:26:16 UTC (rev 11496)
+++ trunk/callgrind/callgrind_annotate.in 2011-01-14 18:48:43 UTC (rev 11497)
@@ -541,14 +541,12 @@
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;
+ if (!defined $call_CCs{$curr_name,$curr_cname}) {
+ $call_CCs{$curr_name,$curr_cname} = [];
+ $call_counter{$curr_name,$curr_cname} = 0;
}
- else {
- $call_CCs{$curr_name,$curr_cname} = $CC;
- $call_counter{$curr_name,$curr_cname} = $curr_call_counter;
- }
+ 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 @@
$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;
|