From 889665f57517cb1182de74568a239a669b22bece Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 7 Dec 2011 09:29:56 +0000 Subject: - Cleanup + perf. improvement (substr_count() is really fast!) --- program/include/rcube_result_index.php | 6 ++---- program/include/rcube_result_thread.php | 13 +++++-------- 2 files changed, 7 insertions(+), 12 deletions(-) (limited to 'program/include') diff --git a/program/include/rcube_result_index.php b/program/include/rcube_result_index.php index 4decaf9e8..e1e6056f5 100644 --- a/program/include/rcube_result_index.php +++ b/program/include/rcube_result_index.php @@ -157,9 +157,9 @@ class rcube_result_index $this->meta['count'] = 0; $this->meta['length'] = 0; } - else - // @TODO: check performance substr_count() vs. explode() + else { $this->meta['count'] = 1 + substr_count($this->raw_data, self::SEPARATOR_ELEMENT); + } return $this->meta['count']; } @@ -185,7 +185,6 @@ class rcube_result_index public function max() { if (!isset($this->meta['max'])) { - // @TODO: do it by parsing raw_data? $this->meta['max'] = (int) @max($this->get()); } @@ -201,7 +200,6 @@ class rcube_result_index public function min() { if (!isset($this->meta['min'])) { - // @TODO: do it by parsing raw_data? $this->meta['min'] = (int) @min($this->get()); } diff --git a/program/include/rcube_result_thread.php b/program/include/rcube_result_thread.php index f0f1356fa..1906f18d1 100644 --- a/program/include/rcube_result_thread.php +++ b/program/include/rcube_result_thread.php @@ -116,8 +116,9 @@ class rcube_result_thread if (empty($this->raw_data)) { $this->meta['count'] = 0; } - else + else { $this->meta['count'] = 1 + substr_count($this->raw_data, self::SEPARATOR_ELEMENT); + } if (!$this->meta['count']) $this->meta['messages'] = 0; @@ -140,11 +141,9 @@ class rcube_result_thread $this->meta['messages'] = 0; } else { - $regexp = '/((^|' . preg_quote(self::SEPARATOR_ELEMENT, '/') - . '|' . preg_quote(self::SEPARATOR_ITEM, '/') . ')[0-9]+)/'; - - // @TODO: can we do this in a better way? - $this->meta['messages'] = preg_match_all($regexp, $this->raw_data, $m); + $this->meta['messages'] = 1 + + substr_count($this->raw_data, self::SEPARATOR_ELEMENT) + + substr_count($this->raw_data, self::SEPARATOR_ITEM); } if ($this->meta['messages'] == 0 || $this->meta['messages'] == 1) @@ -162,7 +161,6 @@ class rcube_result_thread public function max() { if (!isset($this->meta['max'])) { - // @TODO: do it by parsing raw_data? $this->meta['max'] = (int) @max($this->get()); } return $this->meta['max']; @@ -177,7 +175,6 @@ class rcube_result_thread public function min() { if (!isset($this->meta['min'])) { - // @TODO: do it by parsing raw_data? $this->meta['min'] = (int) @min($this->get()); } return $this->meta['min']; -- cgit v1.2.3