Preserve object references
This commit is contained in:
parent
42aa28d06f
commit
0c7c45848b
1 changed files with 4 additions and 4 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue