efl_io_reader/writer: silent errors when operating on unset-objects.
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Mon, 19 Dec 2016 23:59:57 +0000 (21:59 -0200)
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Tue, 20 Dec 2016 12:18:33 +0000 (10:18 -0200)
if we're operating on unset objects, fd are now -1 and would complain,
relax that.

src/lib/ecore/efl_io_reader_fd.c
src/lib/ecore/efl_io_writer_fd.c

index a1f9931..e499009 100644 (file)
@@ -76,7 +76,7 @@ _efl_io_reader_fd_efl_io_reader_can_read_get(Eo *o EINA_UNUSED, Efl_Io_Reader_Fd
 EOLIAN static void
 _efl_io_reader_fd_efl_io_reader_can_read_set(Eo *o, Efl_Io_Reader_Fd_Data *pd, Eina_Bool can_read)
 {
-   EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0);
+   EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0 && can_read);
    if (pd->can_read == can_read) return;
    pd->can_read = can_read;
    efl_event_callback_call(o, EFL_IO_READER_EVENT_CAN_READ_CHANGED, NULL);
@@ -91,7 +91,7 @@ _efl_io_reader_fd_efl_io_reader_eos_get(Eo *o EINA_UNUSED, Efl_Io_Reader_Fd_Data
 EOLIAN static void
 _efl_io_reader_fd_efl_io_reader_eos_set(Eo *o, Efl_Io_Reader_Fd_Data *pd, Eina_Bool is_eos)
 {
-   EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0);
+   EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0 && !is_eos);
    if (pd->eos == is_eos) return;
    pd->eos = is_eos;
    if (is_eos)
index d337f7b..6540d65 100644 (file)
@@ -80,7 +80,7 @@ _efl_io_writer_fd_efl_io_writer_can_write_get(Eo *o EINA_UNUSED, Efl_Io_Writer_F
 EOLIAN static void
 _efl_io_writer_fd_efl_io_writer_can_write_set(Eo *o, Efl_Io_Writer_Fd_Data *pd, Eina_Bool can_write)
 {
-   EINA_SAFETY_ON_TRUE_RETURN(efl_io_writer_fd_get(o) < 0);
+   EINA_SAFETY_ON_TRUE_RETURN(efl_io_writer_fd_get(o) < 0 && can_write);
    if (pd->can_write == can_write) return;
    pd->can_write = can_write;
    efl_event_callback_call(o, EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED, NULL);