diff options
author | Brion Vibber <brion@pobox.com> | 2010-01-15 10:01:50 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-01-15 10:01:50 -0800 |
commit | 745d4283653caf06ede206f58fe0f96b4fdd2c5d (patch) | |
tree | 54be37b9c769dd8eee23f50056b5f8879edcd339 /classes/Inbox.php | |
parent | ef016dca45b17e7a9e8aae17ffe1b5caf0e2694c (diff) |
Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out)
Diffstat (limited to 'classes/Inbox.php')
-rw-r--r-- | classes/Inbox.php | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/classes/Inbox.php b/classes/Inbox.php index 312b4586b..086dba1c9 100644 --- a/classes/Inbox.php +++ b/classes/Inbox.php @@ -154,17 +154,23 @@ class Inbox extends Memcached_DataObject $ids = unpack('N*', $inbox->notice_ids); if (!empty($since_id)) { - $i = array_search($since_id, $ids); - if ($i !== false) { - $ids = array_slice($ids, 0, $i - 1); + $newids = array(); + foreach ($ids as $id) { + if ($id > $since_id) { + $newids[] = $id; + } } + $ids = $newids; } if (!empty($max_id)) { - $i = array_search($max_id, $ids); - if ($i !== false) { - $ids = array_slice($ids, $i - 1); + $newids = array(); + foreach ($ids as $id) { + if ($id <= $max_id) { + $newids[] = $id; + } } + $ids = $newids; } $ids = array_slice($ids, $offset, $limit); |