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 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/callgrind/callgrind_annotate.in b/callgrind/callgrind_annotate.in
index afa9e04..9d711e2 100644
--- a/callgrind/callgrind_annotate.in
+++ b/callgrind/callgrind_annotate.in
@@ -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;