You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by ch...@apache.org on 2008/06/06 18:12:42 UTC

svn commit: r664008 - /incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php

Author: chabotc
Date: Fri Jun  6 09:12:42 2008
New Revision: 664008

URL: http://svn.apache.org/viewvc?rev=664008&view=rev
Log:
SHINDIG-362 Improve getIncludedFeatures functionality in GadgetFeatureRegistry

Modified:
    incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php

Modified: incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php?rev=664008&r1=664007&r2=664008&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/GadgetFeatureRegistry.php Fri Jun  6 09:12:42 2008
@@ -86,27 +86,30 @@
 			return true;
 		}
 		foreach ($needed as $featureName) {
-			$entry = isset($this->features[$featureName]) ? $this->features[$featureName] : null;
-			if ($entry == null) {
+			$feature = isset($this->features[$featureName]) ? $this->features[$featureName] : null;
+			if ($feature == null) {
 				$resultsMissing[] = $featureName;
 			} else {
-				$this->addEntryToSet($resultsFound, $entry);
+				$this->addFeatureToResults($resultsFound, $feature);
 			}
 		}
 		return count($resultsMissing) == 0;
 	}
 
-	private function addEntryToSet(&$results, $entry)
+	private function addFeatureToResults(&$results, $feature)
 	{
-		foreach ($entry->deps as $dep) {
+		if (in_array($feature->name, $results)) {
+			return;
+		}
+		foreach ($feature->deps as $dep) {
 			/*
 			 * TODO: Temporal fix, double check where empty dependencies are being added
 			 */
 			if (! empty($dep)) {
-				$this->addEntryToSet($results, $this->features[$dep]);
+				$this->addFeatureToResults($results, $this->features[$dep]);
 			}
 		}
-		$results[$entry->name] = $entry->name;
+		$results[$feature->name] = $feature->name;
 	}
 
 	public function getEntry($name)