Aleksander Machniak
2015-02-04 09d52dbb6716373ded6c116547cc5fcdc84f5487
program/lib/Roundcube/rcube_plugin_api.php
@@ -374,9 +374,11 @@
     */
    public function unregister_hook($hook, $callback)
    {
        $callback_id = array_search($callback, $this->handlers[$hook]);
        $callback_id = array_search($callback, (array) $this->handlers[$hook]);
        if ($callback_id !== false) {
            unset($this->handlers[$hook][$callback_id]);
            // array_splice() removes the element and re-indexes keys
            // that is required by the 'for' loop in exec_hook() below
            array_splice($this->handlers[$hook], $callback_id, 1);
        }
    }
@@ -395,7 +397,7 @@
            $args = array('arg' => $args);
        }
        // TODO: avoid recusion by checking in_array($hook, $this->exec_stack) ?
        // TODO: avoid recursion by checking in_array($hook, $this->exec_stack) ?
        $args += array('abort' => false);
        array_push($this->exec_stack, $hook);