[grilo] core: Adjust page_size to max_page_size
- From: Juan A. Suarez Romero <jasuarez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo] core: Adjust page_size to max_page_size
- Date: Tue, 9 Jul 2013 13:10:09 +0000 (UTC)
commit f5eaf272cae888ee3b6840052f0ab7251c0f3097
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date: Tue Jul 9 13:07:48 2013 +0000
core: Adjust page_size to max_page_size
If page_size is NULL, then instead of computing the optimal page size, use
max_page_size as the optimal page_size.
This allows to use the function with those services that do not allow to
specify the page size.
src/grl-util.c | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/src/grl-util.c b/src/grl-util.c
index ad5ee4d..27afbc8 100644
--- a/src/grl-util.c
+++ b/src/grl-util.c
@@ -53,6 +53,9 @@
* size, then more requests to services might be needed. But still page size
* will be an optimal value.
*
+ * If @page_size is @NULL, then page size will be @max_page_size. If the later
+ * is also 0, then page size will be #G_MAXUINT.
+ *
* Since: 0.1.6
**/
void grl_paging_translate (guint skip,
@@ -65,20 +68,28 @@ void grl_paging_translate (guint skip,
gulong _page_size;
gulong last_element;
- if (skip < count) {
- _page_size = skip + count;
+ if (!page_size) {
if (max_page_size > 0) {
- _page_size = CLAMP (_page_size, 0, max_page_size);
+ _page_size = max_page_size;
+ } else {
+ _page_size = G_MAXUINT;
}
} else {
- _page_size = count;
- last_element = skip + count - 1;
- while (skip/_page_size != last_element/_page_size &&
- (max_page_size == 0 || _page_size < max_page_size)) {
- _page_size++;
+ if (skip < count) {
+ _page_size = skip + count;
+ if (max_page_size > 0) {
+ _page_size = CLAMP (_page_size, 0, max_page_size);
+ }
+ } else {
+ _page_size = count;
+ last_element = skip + count - 1;
+ while (skip/_page_size != last_element/_page_size &&
+ (max_page_size == 0 || _page_size < max_page_size)) {
+ _page_size++;
+ }
}
+ _page_size = CLAMP (_page_size, 0, G_MAXUINT);
}
- _page_size = CLAMP (_page_size, 0, G_MAXUINT);
if (page_size) {
*page_size = _page_size;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]