[interchange-cvs] interchange - jon modified code/UserTag/summary.tag

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Fri Dec 13 16:30:00 2002


User:      jon
Date:      2002-12-13 21:29:43 GMT
Modified:  code/UserTag summary.tag
Log:
Avoid persistent storage to make [summary] safe in prefork mode.

Revision  Changes    Path
1.2       +5 -5      interchange/code/UserTag/summary.tag


rev 1.2, prev_rev 1.1
Index: summary.tag
===================================================================
RCS file: /var/cvs/interchange/code/UserTag/summary.tag,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- summary.tag	29 Jan 2002 05:52:42 -0000	1.1
+++ summary.tag	13 Dec 2002 21:29:43 -0000	1.2
@@ -13,19 +13,19 @@
 UserTag summary PosNumber 1
 UserTag summary addAttr
 UserTag summary Routine <<EOF
-use vars qw/%summary_hash/;
 sub {
     my ($amount, $opt) = @_;
+	my $summary_hash = $::Instance->{tag_summary_hash} ||= {};
 	my $name;
 	unless ($name = $opt->{name} ) {
 		$name = 'ONLY0000';
-		%summary_hash = () if Vend::Util::is_yes($opt->{reset});
+		%$summary_hash = () if Vend::Util::is_yes($opt->{reset});
 	}
 	else {
-		$summary_hash{$name} = 0 if Vend::Util::is_yes($opt->{reset});
+		$summary_hash->{$name} = 0 if Vend::Util::is_yes($opt->{reset});
 	}
-	$summary_hash{$name} += $amount if length $amount;
-	$amount = $summary_hash{$name} if Vend::Util::is_yes($opt->{total});
+	$summary_hash->{$name} += $amount if length $amount;
+	$amount = $summary_hash->{$name} if Vend::Util::is_yes($opt->{total});
 	return '' if $opt->{hide};
 	return sprintf($opt->{format}, $amount) if $opt->{format};
     return Vend::Util::currency($amount) if $opt->{currency};