]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1136125 - Reduce memory usage of Bugzilla::CGI->send_cookie()
authorDylan William Hardison <dylan@hardison.net>
Mon, 9 Mar 2015 19:35:29 +0000 (15:35 -0400)
committerDylan William Hardison <dylan@hardison.net>
Mon, 9 Mar 2015 19:35:29 +0000 (15:35 -0400)
r=dkl, a=glob

Bugzilla/CGI.pm

index 0b8a486972701b5ffa585b4c75cead25b6a8db13..fb97195470fda4477281b0a5f5c84079cbb27491 100644 (file)
@@ -426,33 +426,17 @@ sub should_set {
 # pass them around to all of the callers. Instead, store them locally here,
 # and then output as required from |header|.
 sub send_cookie {
-    my $self = shift;
-
-    # Move the param list into a hash for easier handling.
-    my %paramhash;
-    my @paramlist;
-    my ($key, $value);
-    while ($key = shift) {
-        $value = shift;
-        $paramhash{$key} = $value;
-    }
+    my ($self, %paramhash) = @_;
 
     # Complain if -value is not given or empty (bug 268146).
-    if (!exists($paramhash{'-value'}) || !$paramhash{'-value'}) {
-        ThrowCodeError('cookies_need_value');
-    }
+    ThrowCodeError('cookies_need_value') unless $paramhash{'-value'};
 
     # Add the default path and the domain in.
     $paramhash{'-path'} = Bugzilla->params->{'cookiepath'};
     $paramhash{'-domain'} = Bugzilla->params->{'cookiedomain'}
         if Bugzilla->params->{'cookiedomain'};
 
-    # Move the param list back into an array for the call to cookie().
-    foreach (keys(%paramhash)) {
-        unshift(@paramlist, $_ => $paramhash{$_});
-    }
-
-    push(@{$self->{'Bugzilla_cookie_list'}}, $self->cookie(@paramlist));
+    push(@{$self->{'Bugzilla_cookie_list'}}, $self->cookie(%paramhash));
 }
 
 # Cookies are removed by setting an expiry date in the past.