From f6b145d5612f7605b36deee8858565611126bee8 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 05 Feb 2010 08:05:25 -0500 Subject: [PATCH] - optimise _id2uid(), prevent from array_flip() warnings --- program/include/rcube_imap.php | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 2408fa2..6ab0b6a 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -105,8 +105,9 @@ if ($use_ssl && extension_loaded('openssl')) $ICL_SSL = $use_ssl == 'imaps' ? 'ssl' : $use_ssl; else if ($use_ssl) { - raise_error(array('code' => 403, 'type' => 'imap', 'file' => __FILE__, - 'message' => 'Open SSL not available;'), TRUE, FALSE); + raise_error(array('code' => 403, 'type' => 'imap', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Open SSL not available"), TRUE, FALSE); $port = 143; } @@ -136,9 +137,9 @@ else if (!$this->conn && $GLOBALS['iil_error']) { $this->error_code = $GLOBALS['iil_errornum']; - raise_error(array('code' => 403, - 'type' => 'imap', - 'message' => $GLOBALS['iil_error']), TRUE, FALSE); + raise_error(array('code' => 403, 'type' => 'imap', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => $GLOBALS['iil_error']), TRUE, FALSE); } // get server properties @@ -2893,11 +2894,13 @@ if ((!empty($this->root_ns) && $this->root_ns == $mbox_name) || $mbox_name == 'INBOX') return $mbox_name; - if (!empty($this->root_dir) && $mode=='in') - $mbox_name = $this->root_dir.$this->delimiter.$mbox_name; - else if (strlen($this->root_dir) && $mode=='out') - $mbox_name = substr($mbox_name, strlen($this->root_dir)+1); - + if (!empty($this->root_dir)) { + if ($mode=='in') + $mbox_name = $this->root_dir.$this->delimiter.$mbox_name; + else if (!empty($mbox_name)) // $mode=='out' + $mbox_name = substr($mbox_name, strlen($this->root_dir)+1); + } + return $mbox_name; } @@ -2998,15 +3001,12 @@ { if (!$mbox_name) $mbox_name = $this->mailbox; - - $index = array_flip((array)$this->uid_id_map[$mbox_name]); - if (isset($index[$id])) - $uid = $index[$id]; - else - { - $uid = iil_C_ID2UID($this->conn, $mbox_name, $id); - $this->uid_id_map[$mbox_name][$uid] = $id; - } + + if ($uid = array_search($id, (array)$this->uid_id_map[$mbox_name])) + return $uid; + + $uid = iil_C_ID2UID($this->conn, $mbox_name, $id); + $this->uid_id_map[$mbox_name][$uid] = $id; return $uid; } -- Gitblit v1.9.1