aboutsummaryrefslogtreecommitdiff
path: root/extmod/modbtree.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-06-15 04:17:45 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-06-15 04:18:44 +0300
commit422396cecef271e4c40e4654a7b5af1208e28a92 (patch)
tree061f82223734a04930690c4a90a852d2dd6ae236 /extmod/modbtree.c
parenta1eab98eaf0316af6094772be3a44dd7184fcb1b (diff)
extmod/modbtree: Handle default value and error check.
Diffstat (limited to 'extmod/modbtree.c')
-rw-r--r--extmod/modbtree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/extmod/modbtree.c b/extmod/modbtree.c
index 4dd7da3b2..58212b33a 100644
--- a/extmod/modbtree.c
+++ b/extmod/modbtree.c
@@ -92,8 +92,13 @@ STATIC mp_obj_t btree_get(size_t n_args, const mp_obj_t *args) {
key.data = (void*)mp_obj_str_get_data(args[1], &key.size);
int res = __bt_get(self->db, &key, &val, 0);
if (res == RET_SPECIAL) {
- return mp_const_none;
+ if (n_args > 2) {
+ return args[2];
+ } else {
+ return mp_const_none;
+ }
}
+ CHECK_ERROR(res);
return mp_obj_new_bytes(val.data, val.size);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(btree_get_obj, 2, 3, btree_get);