[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};