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)


Reply via email to