From: Tim Starling Date: Sat, 22 Oct 2005 16:19:03 +0000 (+0000) Subject: Preserve object references X-Git-Tag: 1.6.0~1371 X-Git-Url: http://git.cyclocoop.org/%27.%28%24current%20%3E%202?a=commitdiff_plain;h=0c7c45848ba4e8e6d5f7e584a1a4a4379a8fd2d6;p=lhc%2Fweb%2Fwiklou.git Preserve object references --- diff --git a/includes/Hooks.php b/includes/Hooks.php index d19c853a4b..be8496ad8c 100644 --- a/includes/Hooks.php +++ b/includes/Hooks.php @@ -53,7 +53,7 @@ if (defined('MEDIAWIKI')) { return false; } - foreach ($wgHooks[$event] as $hook) { + foreach ($wgHooks[$event] as $index => $hook) { $object = NULL; $method = NULL; @@ -70,7 +70,7 @@ if (defined('MEDIAWIKI')) { if (count($hook) < 1) { wfDebugDieBacktrace("Empty array in hooks for " . $event . "\n"); } else if (is_object($hook[0])) { - $object = $hook[0]; + $object =& $wgHooks[$event][$index][0]; if (count($hook) < 2) { $method = "on" . $event; } else { @@ -92,7 +92,7 @@ if (defined('MEDIAWIKI')) { } else if (is_string($hook)) { # functions look like strings, too $func = $hook; } else if (is_object($hook)) { - $object = $hook; + $object =& $wgHooks[$event][$index]; $method = "on" . $event; } else { wfDebugDieBacktrace("Unknown datatype in hooks for " . $event . "\n"); @@ -114,7 +114,7 @@ if (defined('MEDIAWIKI')) { /* Call the hook. */ wfProfileIn( $func ); if( isset( $object ) ) { - $retval = call_user_func_array(array($object, $method), $hook_args); + $retval = call_user_func_array(array(&$object, $method), $hook_args); } else { $retval = call_user_func_array($func, $hook_args); }