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