From 9426b8e41b45893487226c45b75ea30c9d09232e Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Fri, 28 Jun 2013 21:43:29 +0000
Subject: [PATCH] Fixed handling of newly introduced generic array

---
 .../main/registry/class_BaseRegistry.php      | 34 ++++++++++++++-----
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/inc/classes/main/registry/class_BaseRegistry.php b/inc/classes/main/registry/class_BaseRegistry.php
index f39457cf..629c9a11 100644
--- a/inc/classes/main/registry/class_BaseRegistry.php
+++ b/inc/classes/main/registry/class_BaseRegistry.php
@@ -129,6 +129,9 @@ class BaseRegistry extends BaseFrameworkSystem implements Registerable {
 		// Init array
 		$entry = array();
 
+		// Debug message
+		//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Checking arrayKey=' . $arrayKey . ',lookFor=' . $lookFor);
+
 		// "Walk" over all entries
 		foreach ($this->getEntries($arrayKey) as $key => $value) {
 			// Debug message
@@ -138,16 +141,28 @@ class BaseRegistry extends BaseFrameworkSystem implements Registerable {
 			if ($lookFor == $value) {
 				// Look for more entries
 				foreach ($this->getEntries() as $key2 => $value2) {
-					// Debug message
-					//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Checking key2=' . $key2 . ',value2=' . print_r($value2, true) . ',lookFor=' . $lookFor);
-
-					// Both keys must match!
-					if (($key == $key2) || (isset($value2[$key]))) {
+					// Now "walk" through all entries, if an array is returned
+					if (is_array($value2)) {
 						// Debug message
-						//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Adding ' . $value2[$key] . ' ...');
+						//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Checking key2=' . $key2 . ',value2()=' . count($value2) . ',lookFor=' . $lookFor);
+
+						// "Walk" through all of them
+						foreach ($value2 as $key3 => $value3) {
+							// $value3 needs to be an array
+							assert(is_array($value3));
 
-						// Then add it
-						$entry[$key2] = $value2[$key];
+							// Debug message
+							//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Checking key=' . $key . ',key3=' . $key3 . ',isset()=' . isset($value3[$key]) . ' ...');
+
+							// Both keys must match!
+							if (($key == $key3) || (isset($value3[$key]))) {
+								// Debug message
+								//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Adding ' . $value3[$key] . ' ...');
+
+								// Then add it
+								$entry[$key3] = $value3[$key];
+							} // END - if
+						} // END - foreach
 					} // END - if
 				} // END - foreach
 
@@ -156,6 +171,9 @@ class BaseRegistry extends BaseFrameworkSystem implements Registerable {
 			} // END - if
 		} // END - foreach
 
+		// Debug message
+		//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGISTRY[' . __LINE__ . ']: Returning entry(' . count($entry) . ')=' . print_r($entry, TRUE));
+
 		// Return it
 		return $entry;
 	}
-- 
2.39.5