From d0416ff9158de23df9b916801ec3d27d85403c00 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 16 Jun 2016 18:16:33 +0300 Subject: [PATCH] extmod/modbtree: Actually implement end key support for .items(). --- extmod/modbtree.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/extmod/modbtree.c b/extmod/modbtree.c index 181f5d7174..cdcfe66191 100644 --- a/extmod/modbtree.c +++ b/extmod/modbtree.c @@ -153,6 +153,16 @@ STATIC mp_obj_t btree_iternext(mp_obj_t self_in) { } CHECK_ERROR(res); + if (self->end_key != mp_const_none) { + DBT end_key; + end_key.data = (void*)mp_obj_str_get_data(self->end_key, &end_key.size); + BTREE *t = self->db->internal; + if (t->bt_cmp(&key, &end_key) >= 0) { + self->end_key = MP_OBJ_NULL; + return MP_OBJ_STOP_ITERATION; + } + } + mp_obj_tuple_t *pair = mp_obj_new_tuple(2, NULL); pair->items[0] = mp_obj_new_bytes(key.data, key.size); pair->items[1] = mp_obj_new_bytes(val.data, val.size);