From: Dylan William Hardison Date: Fri, 23 Dec 2016 01:35:20 +0000 (-0500) Subject: Bug 1301383 - Memoize does not work under threaded perl in windows: "Anonymous functi... X-Git-Tag: release-5.1.2~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=65bbd453dc8cedef86af52a37dd84ed0257acb62;p=thirdparty%2Fbugzilla.git Bug 1301383 - Memoize does not work under threaded perl in windows: "Anonymous function called in forbidden scalar context" --- diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index 2e3f339a75..7a48995da1 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -15,7 +15,6 @@ use parent qw(Exporter); # For bz_locations use File::Basename; -use Memoize; @Bugzilla::Constants::EXPORT = qw( BUGZILLA_VERSION @@ -641,9 +640,13 @@ use constant EMAIL_LIMIT_EXCEPTION => "email_limit_exceeded\n"; use constant JOB_QUEUE_VIEW_MAX_JOBS => 500; sub bz_locations { - # Force memoize() to re-compute data per project, to avoid + # Force $memoize to re-compute data per project, to avoid # sharing the same data across different installations. - return _bz_locations($ENV{'PROJECT'}); + state $memoize = {}; + my $project = $ENV{PROJECT}; + my $key = $project // '__DEFAULT'; + + return $memoize->{$key} //= _bz_locations($project); } sub _bz_locations { @@ -704,10 +707,6 @@ sub _bz_locations { }; } -# This makes us not re-compute all the bz_locations data every time it's -# called. -BEGIN { memoize('_bz_locations') }; - 1; =head1 B