From b7ebb19b02cb814abea57b2aa35dd163334675a6 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sun, 15 Mar 2015 11:07:57 +0000
Subject: [PATCH] scripts/feeds: get rid of redundant feed cache copy

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44779
---
 scripts/feeds | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/scripts/feeds b/scripts/feeds
index 6e30b5a20f..a1795e1639 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -366,16 +366,14 @@ sub do_install_package($$) {
 	return 0;
 }
 
-my %feed;
-
 sub lookup_package($$) {
 	my $feed = shift;
 	my $package = shift;
 
 	foreach my $feed ($feed, @feeds) {
 		next unless $feed->[1];
-		next unless $feed{$feed->[1]};
-		$feed{$feed->[1]}->{$package} and return $feed;
+		next unless $feed_cache{$feed->[1]};
+		$feed_cache{$feed->[1]}->[0]->{$package} and return $feed;
 	}
 	return;
 }
@@ -404,9 +402,9 @@ sub install_package {
 	};
 
 	# switch to the metadata for the selected feed
-	get_feed($feed->[1]);
+	my $cur = get_feed($feed->[1]);
 
-	my $pkg = $feed{$feed->[1]}->{$name} or return 1;
+	my $pkg = $cur->{$name} or return 1;
 	$pkg->{name} or do {
 		$installed{$name} and return 0;
 		# TODO: check if this is an alias package, maybe it's known by another name
@@ -488,8 +486,8 @@ sub install {
 	get_installed();
 
 	foreach my $f (@feeds) {
-		# index all feeds
-		$feed{$f->[1]} = get_feed($f->[1]);
+		# fetch all feeds
+		get_feed($f->[1]);
 
 		# look up the preferred feed
 		$opts{p} and $f->[1] eq $opts{p} and $feed = $f;
-- 
GitLab