Preserve object references

This commit is contained in:
Tim Starling 2005-10-22 16:19:03 +00:00
parent 42aa28d06f
commit 0c7c45848b

View file

@ -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);
}