From 90535df46d0d8b4052497a9dc0beacd8c186066f Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Mon, 17 Dec 2018 00:38:24 +0100 Subject: Use context variable to track singletons Signed-off-by: Florian Pritz --- lib/App/ArchLinux/PackagerTools/CPAN.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/App/ArchLinux/PackagerTools/CPAN.pm') diff --git a/lib/App/ArchLinux/PackagerTools/CPAN.pm b/lib/App/ArchLinux/PackagerTools/CPAN.pm index 1e1c86c..e7521b6 100644 --- a/lib/App/ArchLinux/PackagerTools/CPAN.pm +++ b/lib/App/ArchLinux/PackagerTools/CPAN.pm @@ -38,16 +38,19 @@ Returns a new instance. =cut method new($class: $deps = {}) { - $deps->{packages_details_fetcher} //= App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher->new(); + $deps->{packages_details_fetcher} //= App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher->new({$deps->%{context}}); return $class->new_no_defaults($deps); } method new_no_defaults($class: $deps = {}) { + return $deps->{context}->{__PACKAGE__} if defined $deps->{context}->{__PACKAGE__}; + my $self = {}; bless $self, $class; $self->{deps} = $deps; $self->{dist_lc_map} = {}; $self->{dists} = {}; + $deps->{context}->{__PACKAGE__} = $self; return $self; } -- cgit v1.2.3-24-g4f1b