summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-01-24 19:05:18 +0100
committerAleksander Machniak <alec@alec.pl>2014-01-24 19:05:18 +0100
commit3b1d410b4ede2fd54be23bb47da5950535df9b04 (patch)
treece3a73fbaa3bdf48bf2b317f8711802f4d23bc63 /program/lib
parent5140c310645b1728f59e27d8f5fe37aeb2928d6f (diff)
Fix confusing intersect/filter methods naming/behaviour.
Removed rcube_result_index::intersect() method. Changed rcube_result_index::filter() to filter in the same way as rcube_result_thread::filter(), which means it actually does array_intersect(). Added tests scripts for rcube_result_index class.
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/Roundcube/rcube_result_index.php19
-rw-r--r--program/lib/Roundcube/rcube_result_thread.php2
2 files changed, 3 insertions, 18 deletions
diff --git a/program/lib/Roundcube/rcube_result_index.php b/program/lib/Roundcube/rcube_result_index.php
index 5f592c54f..058f25c6f 100644
--- a/program/lib/Roundcube/rcube_result_index.php
+++ b/program/lib/Roundcube/rcube_result_index.php
@@ -231,29 +231,13 @@ class rcube_result_index
/**
- * Filters data set. Removes elements listed in $ids list.
+ * Filters data set. Removes elements not listed in $ids list.
*
* @param array $ids List of IDs to remove.
*/
public function filter($ids = array())
{
$data = $this->get();
- $data = array_diff($data, $ids);
-
- $this->meta = array();
- $this->meta['count'] = count($data);
- $this->raw_data = implode(self::SEPARATOR_ELEMENT, $data);
- }
-
-
- /**
- * Filters data set. Removes elements not listed in $ids list.
- *
- * @param array $ids List of IDs to keep.
- */
- public function intersect($ids = array())
- {
- $data = $this->get();
$data = array_intersect($data, $ids);
$this->meta = array();
@@ -332,6 +316,7 @@ class rcube_result_index
if (empty($this->raw_data)) {
return array();
}
+
return explode(self::SEPARATOR_ELEMENT, $this->raw_data);
}
diff --git a/program/lib/Roundcube/rcube_result_thread.php b/program/lib/Roundcube/rcube_result_thread.php
index c7f21db53..ceaaf59a6 100644
--- a/program/lib/Roundcube/rcube_result_thread.php
+++ b/program/lib/Roundcube/rcube_result_thread.php
@@ -453,7 +453,7 @@ class rcube_result_thread
// when sorting search result it's good to make the index smaller
if ($index->count() != $this->count_messages()) {
- $index->intersect($this->get());
+ $index->filter($this->get());
}
$result = array_fill_keys($index->get(), null);