summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/rcube_result_index.php6
-rw-r--r--program/include/rcube_result_thread.php13
2 files changed, 7 insertions, 12 deletions
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'];