From e22cddbe2a91ce1da422c813f171f26e8488ba97 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Fri, 13 Jun 2014 23:46:21 +0300 Subject: [PATCH] stream: Use mp_obj_is_true() for EOF testing. Getting a length of string may be expensive, depending on the underlying implementation. --- py/stream.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/py/stream.c b/py/stream.c index 71aaa4e99..07a79248a 100644 --- a/py/stream.c +++ b/py/stream.c @@ -217,7 +217,7 @@ STATIC mp_obj_t stream_unbuffered_readlines(mp_obj_t self) { mp_obj_t lines = mp_obj_new_list(0, NULL); for (;;) { mp_obj_t line = stream_unbuffered_readline(1, &self); - if (mp_obj_str_get_len(line) == 0) { + if (!mp_obj_is_true(line)) { break; } mp_obj_list_append(lines, line); @@ -228,7 +228,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_stream_unbuffered_readlines_obj, stream_unbuffered_ mp_obj_t mp_stream_unbuffered_iter(mp_obj_t self) { mp_obj_t l_in = stream_unbuffered_readline(1, &self); - if (mp_obj_str_get_len(l_in) != 0) { + if (mp_obj_is_true(l_in)) { return l_in; } return MP_OBJ_STOP_ITERATION; -- GitLab