From 889665f57517cb1182de74568a239a669b22bece Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 07 Dec 2011 04:29:56 -0500
Subject: [PATCH] - Cleanup + perf. improvement (substr_count() is really fast!)

---
 program/include/rcube_result_thread.php |   13 +++++--------
 program/include/rcube_result_index.php  |    6 ++----
 2 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/program/include/rcube_result_index.php b/program/include/rcube_result_index.php
index 4decaf9..e1e6056 100644
--- a/program/include/rcube_result_index.php
+++ b/program/include/rcube_result_index.php
@@ -157,9 +157,9 @@
             $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 @@
     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 @@
     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 f0f1356..1906f18 100644
--- a/program/include/rcube_result_thread.php
+++ b/program/include/rcube_result_thread.php
@@ -116,8 +116,9 @@
         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 @@
             $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 @@
     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 @@
     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'];

--
Gitblit v1.9.1