return false;
}
- foreach ($wgHooks[$event] as $hook) {
+ foreach ($wgHooks[$event] as $index => $hook) {
$object = NULL;
$method = NULL;
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 {
} 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");
/* 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);
}