summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-01-16 22:09:54 +0000
committerDamien George <damien.p.george@gmail.com>2014-01-16 22:09:54 +0000
commit5a877503d992de4c7e533fb1616d36ab2e6433e8 (patch)
treea260c4fda0118b5ce27f9c774c6ffdd3d8482a7f /py
parent8161a10de1011f2e8cf4e4b0c89b7a25db1631a0 (diff)
parent10744dd816b7cc2bfa6a7ea8402ae21aac12838b (diff)
downloadmicropython-5a877503d992de4c7e533fb1616d36ab2e6433e8.tar.gz
micropython-5a877503d992de4c7e533fb1616d36ab2e6433e8.zip
Merge branch 'master' of github.com:dpgeorge/micropython
Diffstat (limited to 'py')
-rw-r--r--py/runtime.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 0da3ced058..d6ef6f9be2 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -297,6 +297,24 @@ int rt_is_true(mp_obj_t arg) {
return 0;
} else if (arg == mp_const_true) {
return 1;
+ } else if (MP_OBJ_IS_QSTR(arg)) {
+ // TODO: \0
+ return *qstr_str(MP_OBJ_QSTR_VALUE(arg)) != 0;
+ } else if (MP_OBJ_IS_TYPE(arg, &str_type)) {
+ // TODO: \0
+ return *qstr_str(mp_obj_str_get(arg)) != 0;
+ } else if (MP_OBJ_IS_TYPE(arg, &list_type)) {
+ uint len;
+ mp_obj_t *dummy;
+ mp_obj_list_get(arg, &len, &dummy);
+ return len != 0;
+ } else if (MP_OBJ_IS_TYPE(arg, &tuple_type)) {
+ uint len;
+ mp_obj_t *dummy;
+ mp_obj_tuple_get(arg, &len, &dummy);
+ return len != 0;
+ } else if (MP_OBJ_IS_TYPE(arg, &dict_type)) {
+ return mp_obj_dict_len(arg) != 0;
} else {
assert(0);
return 0;