barbieri pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=44d95dd408e1584304e07dc26a5f98a20e351cf9

commit 44d95dd408e1584304e07dc26a5f98a20e351cf9
Author: Gustavo Sverzut Barbieri <barbi...@profusion.mobi>
Date:   Wed Nov 23 03:36:43 2016 -0200

    efl_io_copier: do not emit data events if no data is available.
---
 src/lib/ecore/efl_io_copier.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
index a47d3df..5646e0d 100644
--- a/src/lib/ecore/efl_io_copier.c
+++ b/src/lib/ecore/efl_io_copier.c
@@ -244,7 +244,7 @@ _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data *pd)
    pd->progress.read += rw_slice.len;
    pd->done = EINA_FALSE;
 
-   if (!pd->destination)
+   if ((!pd->destination) && (eina_binbuf_length_get(pd->buf) > used))
      {
         /* Note: if there is a destination, dispatch data and line
          * from write since it will remove from binbuf and make it
@@ -303,6 +303,9 @@ _efl_io_copier_write(Eo *o, Efl_Io_Copier_Data *pd)
           efl_event_callback_call(o, EFL_IO_COPIER_EVENT_ERROR, &err);
         return;
      }
+   if (ro_slice.len == 0)
+     return;
+
    pd->progress.written += ro_slice.len;
    pd->done = EINA_FALSE;
 

-- 


Reply via email to