roundcubemail/program/lib/Roundcube/rcube_session.php
protected function _fixvars($vars, $oldvars)
    {
        if ($oldvars !== null) {
            $a_oldvars = $this->unserialize($oldvars);
            if (is_array($a_oldvars)) {
                // remove unset keys on oldvars
                foreach ((array)$this->unsets as $var) {
                    if (isset($a_oldvars[$var])) {
                        unset($a_oldvars[$var]);
                    }
                    else {
                        $path = explode('.', $var);
                        $k = array_pop($path);
                        $node = &$this->get_node($path, $a_oldvars);
                        unset($node[$k]);
                    }
                }

                $newvars = $this->serialize(array_merge(
                    (array)$a_oldvars, (array)$this->unserialize($vars)));
            }
            else {
                $newvars = $vars;
            }
        }

        $this->unsets = array();
        return $newvars;
    }
protected function _fixvars($vars, $oldvars)
    {
        if ($oldvars !== null) {
            $a_oldvars = $this->unserialize($oldvars);
            if (is_array($a_oldvars)) {
                // remove unset keys on oldvars
                foreach ((array)$this->unsets as $var) {
                    if (isset($a_oldvars[$var])) {
                        unset($a_oldvars[$var]);
                    }
                    else {
                        $path = explode('.', $var);
                        $k = array_pop($path);
                        $node = &$this->get_node($path, $a_oldvars);
                        unset($node[$k]);
                    }
                }

                $newvars = $this->serialize(array_merge(
                    (array)$a_oldvars, (array)$this->unserialize($vars)));
            }
            else {
                $newvars = $vars;
            }
        }

        $this->unsets = array();
        return $newvars;
    }
protected function _fixvars ( $ vars , $ oldvars ) { if ( $ oldvars !== null ) { $ a_oldvars = $ this -> unserialize ( $ oldvars ) ; if ( is_array ( $ a_oldvars ) ) { // remove unset keys on oldvars foreach ( ( array ) $ this -> unsets as $ var ) { if ( isset ( $ a_oldvars [ $ var ] ) ) { unset ( $ a_oldvars [ $ var ] ) ; } else { $ path = explode ( '.' , $ var ) ; $ k = array_pop ( $ path ) ; $ node = & $ this -> get_node ( $ path , $ a_oldvars ) ; unset ( $ node [ $ k ] ) ; } } $ newvars = $ this -> serialize ( array_merge ( ( array ) $ a_oldvars , ( array ) $ this -> unserialize ( $ vars ) ) ) ; } else { $ newvars = $ vars ; } } $ this -> unsets = array ( ) ; return $ newvars ; }
Merge vars with old vars and apply unsets
Merge vars with old vars and apply unsets