diff --git a/src/examples/ecore/efl_net_server_example.c b/src/examples/ecore/efl_net_server_example.c index 694ce76418..29a4b96547 100644 --- a/src/examples/ecore/efl_net_server_example.c +++ b/src/examples/ecore/efl_net_server_example.c @@ -321,7 +321,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event) efl_io_copier_destination_set(efl_added, client), efl_io_copier_timeout_inactivity_set(efl_added, timeout), efl_event_callback_array_add(efl_added, echo_copier_cbs(), client), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ ); fprintf(stderr, "INFO: using an echo copier=%p for client %s\n", @@ -362,7 +362,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event) efl_io_copier_destination_set(efl_added, client), efl_io_copier_timeout_inactivity_set(efl_added, timeout), efl_event_callback_array_add(efl_added, send_copier_cbs(), d), - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */ + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */ ); fprintf(stderr, "INFO: using sender buffer %p with copier %p for client %s\n", @@ -379,7 +379,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event) efl_io_copier_destination_set(efl_added, recv_buffer), efl_io_copier_timeout_inactivity_set(efl_added, 0.0), /* we'll only set an inactivity timeout once the sender is done */ efl_event_callback_array_add(efl_added, recv_copier_cbs(), d), - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */ + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */ ); fprintf(stderr, "INFO: using receiver buffer %p with copier %p for client %s\n", diff --git a/src/examples/ecore/efl_net_server_simple_example.c b/src/examples/ecore/efl_net_server_simple_example.c index 485dc81476..beb314b2a0 100644 --- a/src/examples/ecore/efl_net_server_simple_example.c +++ b/src/examples/ecore/efl_net_server_simple_example.c @@ -176,7 +176,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event) efl_io_copier_source_set(efl_added, client), efl_io_copier_destination_set(efl_added, client), efl_event_callback_array_add(efl_added, echo_copier_cbs(), client), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ ); fprintf(stderr, "INFO: using an echo copier=%p for client %s\n", diff --git a/src/examples/ecore/efl_net_socket_ssl_server_example.c b/src/examples/ecore/efl_net_socket_ssl_server_example.c index 77d435e107..4b9171e41a 100644 --- a/src/examples/ecore/efl_net_socket_ssl_server_example.c +++ b/src/examples/ecore/efl_net_socket_ssl_server_example.c @@ -128,7 +128,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event) efl_io_copier_destination_set(efl_added, ssl), efl_io_copier_timeout_inactivity_set(efl_added, timeout), efl_event_callback_array_add(efl_added, echo_copier_cbs(), ssl), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */ ); fprintf(stderr, "INFO: using an echo copier=%p for ssl %s\n", diff --git a/src/lib/ecore/efl_io_buffered_stream.c b/src/lib/ecore/efl_io_buffered_stream.c index 3f34aca9fc..3a0921f959 100644 --- a/src/lib/ecore/efl_io_buffered_stream.c +++ b/src/lib/ecore/efl_io_buffered_stream.c @@ -227,15 +227,15 @@ _efl_io_buffered_stream_efl_io_closer_close_on_exec_set(Eo *o EINA_UNUSED, Efl_I } EOLIAN static Eina_Bool -_efl_io_buffered_stream_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd) +_efl_io_buffered_stream_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd) { - return efl_io_closer_close_on_destructor_get(pd->inner_io); + return efl_io_closer_close_on_invalidate_get(pd->inner_io); } EOLIAN static void -_efl_io_buffered_stream_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd, Eina_Bool value) +_efl_io_buffered_stream_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd, Eina_Bool value) { - efl_io_closer_close_on_destructor_set(pd->inner_io, value); + efl_io_closer_close_on_invalidate_set(pd->inner_io, value); } EOLIAN static Eina_Error @@ -369,7 +369,7 @@ _efl_io_buffered_stream_inner_io_set(Eo *o, Efl_Io_Buffered_Stream_Data *pd, Efl efl_io_copier_buffer_limit_set(efl_added, 4096), efl_io_copier_source_set(efl_added, io), efl_io_copier_destination_set(efl_added, pd->incoming), - efl_io_closer_close_on_destructor_set(efl_added, efl_io_closer_close_on_destructor_get(io)), + efl_io_closer_close_on_invalidate_set(efl_added, efl_io_closer_close_on_invalidate_get(io)), efl_event_callback_array_add(efl_added, _efl_io_buffered_stream_receiver_cbs(), o)); EINA_SAFETY_ON_NULL_RETURN(pd->receiver); } @@ -394,7 +394,7 @@ _efl_io_buffered_stream_inner_io_set(Eo *o, Efl_Io_Buffered_Stream_Data *pd, Efl efl_io_copier_buffer_limit_set(efl_added, 4096), efl_io_copier_source_set(efl_added, pd->outgoing), efl_io_copier_destination_set(efl_added, io), - efl_io_closer_close_on_destructor_set(efl_added, efl_io_closer_close_on_destructor_get(io)), + efl_io_closer_close_on_invalidate_set(efl_added, efl_io_closer_close_on_invalidate_get(io)), efl_event_callback_array_add(efl_added, _efl_io_buffered_stream_sender_cbs(), o)); EINA_SAFETY_ON_NULL_RETURN(pd->sender); } diff --git a/src/lib/ecore/efl_io_buffered_stream.eo b/src/lib/ecore/efl_io_buffered_stream.eo index 5c413aea91..973de1849e 100644 --- a/src/lib/ecore/efl_io_buffered_stream.eo +++ b/src/lib/ecore/efl_io_buffered_stream.eo @@ -251,7 +251,7 @@ class Efl.Io.Buffered_Stream (Efl.Loop_Consumer, Efl.Io.Reader, Efl.Io.Writer, E Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Reader.read; Efl.Io.Reader.can_read { get; set; } Efl.Io.Reader.eos { get; set; } diff --git a/src/lib/ecore/efl_io_closer_fd.c b/src/lib/ecore/efl_io_closer_fd.c index 9dcea594bc..d0ace13bfe 100644 --- a/src/lib/ecore/efl_io_closer_fd.c +++ b/src/lib/ecore/efl_io_closer_fd.c @@ -15,7 +15,7 @@ typedef struct _Efl_Io_Closer_Fd_Data int fd; Eina_Bool close_on_exec; - Eina_Bool close_on_destructor; + Eina_Bool close_on_invalidate; } Efl_Io_Closer_Fd_Data; static Efl_Object * @@ -119,15 +119,15 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_get(const Eo *o, Efl_Io_Closer_Fd_ } EOLIAN static void -_efl_io_closer_fd_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd, Eina_Bool close_on_destructor) +_efl_io_closer_fd_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd, Eina_Bool close_on_invalidate) { - pd->close_on_destructor = close_on_destructor; + pd->close_on_invalidate = close_on_invalidate; } EOLIAN static Eina_Bool -_efl_io_closer_fd_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd) +_efl_io_closer_fd_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd) { - return pd->close_on_destructor; + return pd->close_on_invalidate; } #include "efl_io_closer_fd.eo.c" diff --git a/src/lib/ecore/efl_io_closer_fd.eo b/src/lib/ecore/efl_io_closer_fd.eo index b0b63b364b..721e449f1d 100644 --- a/src/lib/ecore/efl_io_closer_fd.eo +++ b/src/lib/ecore/efl_io_closer_fd.eo @@ -20,6 +20,6 @@ mixin Efl.Io.Closer_Fd (Efl.Io.Closer, Efl.Object) { Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } } } diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c index 9298459d89..686454912d 100644 --- a/src/lib/ecore/efl_io_copier.c +++ b/src/lib/ecore/efl_io_copier.c @@ -28,7 +28,7 @@ typedef struct _Efl_Io_Copier_Data Eina_Bool done; Eina_Bool force_dispatch; Eina_Bool close_on_exec; - Eina_Bool close_on_destructor; + Eina_Bool close_on_invalidate; } Efl_Io_Copier_Data; static void _efl_io_copier_write(Eo *o, Efl_Io_Copier_Data *pd); @@ -433,7 +433,7 @@ _efl_io_copier_source_set(Eo *o, Efl_Io_Copier_Data *pd, Efl_Io_Reader *source) if (efl_isa(pd->source, EFL_IO_CLOSER_MIXIN)) { efl_io_closer_close_on_exec_set(pd->source, efl_io_closer_close_on_exec_get(o)); - efl_io_closer_close_on_destructor_set(pd->source, efl_io_closer_close_on_destructor_get(o)); + efl_io_closer_close_on_invalidate_set(pd->source, efl_io_closer_close_on_invalidate_get(o)); efl_event_callback_add(pd->source, EFL_IO_CLOSER_EVENT_CLOSED, _efl_io_copier_source_closed, o); } @@ -512,7 +512,7 @@ _efl_io_copier_destination_set(Eo *o, Efl_Io_Copier_Data *pd, Efl_Io_Writer *des if (efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN)) { efl_io_closer_close_on_exec_set(pd->destination, efl_io_closer_close_on_exec_get(o)); - efl_io_closer_close_on_destructor_set(pd->destination, efl_io_closer_close_on_destructor_get(o)); + efl_io_closer_close_on_invalidate_set(pd->destination, efl_io_closer_close_on_invalidate_get(o)); efl_event_callback_add(pd->destination, EFL_IO_CLOSER_EVENT_CLOSED, _efl_io_copier_destination_closed, o); } @@ -806,7 +806,7 @@ _efl_io_copier_efl_object_constructor(Eo *o, Efl_Io_Copier_Data *pd) { pd->buf = eina_binbuf_new(); pd->close_on_exec = EINA_TRUE; - pd->close_on_destructor = EINA_TRUE; + pd->close_on_invalidate = EINA_TRUE; pd->timeout_inactivity = 0.0; EINA_SAFETY_ON_NULL_RETURN_VAL(pd->buf, NULL); @@ -836,17 +836,9 @@ _efl_io_copier_efl_object_finalize(Eo *o, Efl_Io_Copier_Data *pd) } EOLIAN static void -_efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd) +_efl_io_copier_efl_object_invalidate(Eo *o, Efl_Io_Copier_Data *pd EINA_UNUSED) { - _COPIER_DBG(o, pd); - - if (pd->job) - eina_future_cancel(pd->job); - - if (pd->inactivity_timer) - eina_future_cancel(pd->inactivity_timer); - - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -857,6 +849,20 @@ _efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd) efl_io_copier_source_set(o, NULL); efl_io_copier_destination_set(o, NULL); + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd) +{ + _COPIER_DBG(o, pd); + + if (pd->job) + eina_future_cancel(pd->job); + + if (pd->inactivity_timer) + eina_future_cancel(pd->inactivity_timer); + efl_destructor(efl_super(o, MY_CLASS)); if (pd->buf) @@ -895,22 +901,22 @@ _efl_io_copier_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_C } EOLIAN static void -_efl_io_copier_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd, Eina_Bool close_on_destructor) +_efl_io_copier_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd, Eina_Bool close_on_invalidate) { - if (pd->close_on_destructor == close_on_destructor) return; - pd->close_on_destructor = close_on_destructor; + if (pd->close_on_invalidate == close_on_invalidate) return; + pd->close_on_invalidate = close_on_invalidate; if (pd->source && efl_isa(pd->source, EFL_IO_CLOSER_MIXIN)) - efl_io_closer_close_on_destructor_set(pd->source, close_on_destructor); + efl_io_closer_close_on_invalidate_set(pd->source, close_on_invalidate); if (pd->destination && efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN)) - efl_io_closer_close_on_destructor_set(pd->destination, close_on_destructor); + efl_io_closer_close_on_invalidate_set(pd->destination, close_on_invalidate); } EOLIAN static Eina_Bool -_efl_io_copier_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd) +_efl_io_copier_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd) { - return pd->close_on_destructor; + return pd->close_on_invalidate; } #include "efl_io_copier.eo.c" diff --git a/src/lib/ecore/efl_io_copier.eo b/src/lib/ecore/efl_io_copier.eo index 345775eb77..ae40851681 100644 --- a/src/lib/ecore/efl_io_copier.eo +++ b/src/lib/ecore/efl_io_copier.eo @@ -57,7 +57,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) { @.source and @.destination if they implement those interfaces. @Efl.Io.Closer.close_on_exec and - @Efl.Io.Closer.close_on_destructor are respected and applied to + @Efl.Io.Closer.close_on_invalidate are respected and applied to both source and destination. Both default to $true. @since 1.19 @@ -107,7 +107,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) { If the source object implements @Efl.Io.Closer and it's not closed, it will be closed when the copier itself is. This may happen, for example, when the copier is - deleted and @Efl.Io.Closer.close_on_destructor is $true + deleted and @Efl.Io.Closer.close_on_invalidate is $true (the default). Common source classes are @Efl.Io.Buffer (if fixed data @@ -166,7 +166,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) { If the destination object implements @Efl.Io.Closer and it's not closed, it will be closed when the copier itself is. This may happen, for example, when the copier is - deleted and @Efl.Io.Closer.close_on_destructor is $true + deleted and @Efl.Io.Closer.close_on_invalidate is $true (the default). Common destination classes are @Efl.Io.Buffer (better to @@ -370,11 +370,12 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) { implements { Efl.Object.constructor; - Efl.Object.destructor; Efl.Object.finalize; + Efl.Object.invalidate; + Efl.Object.destructor; Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } } } diff --git a/src/lib/ecore/efl_io_file.c b/src/lib/ecore/efl_io_file.c index cfee3371fc..c8716d2935 100644 --- a/src/lib/ecore/efl_io_file.c +++ b/src/lib/ecore/efl_io_file.c @@ -112,7 +112,7 @@ _efl_io_file_efl_object_constructor(Eo *o, Efl_Io_File_Data *pd) o = efl_constructor(efl_super(o, MY_CLASS)); efl_io_closer_close_on_exec_set(o, EINA_TRUE); - efl_io_closer_close_on_destructor_set(o, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(o, EINA_TRUE); efl_io_positioner_fd_set(o, -1); efl_io_sizer_fd_set(o, -1); efl_io_reader_fd_set(o, -1); @@ -125,7 +125,7 @@ _efl_io_file_efl_object_constructor(Eo *o, Efl_Io_File_Data *pd) EOLIAN static void _efl_io_file_efl_object_destructor(Eo *o, Efl_Io_File_Data *pd) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); diff --git a/src/lib/ecore/efl_io_file.eo b/src/lib/ecore/efl_io_file.eo index 4040f5dc86..b586a88ca2 100644 --- a/src/lib/ecore/efl_io_file.eo +++ b/src/lib/ecore/efl_io_file.eo @@ -2,7 +2,7 @@ class Efl.Io.File (Efl.Loop_Fd, Efl.File, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Ef [[File access (open, close, read, write, lseek, ftruncate) @Efl.Io.Closer.close_on_exec and - @Efl.Io.Closer.close_on_destructor are respected and default to + @Efl.Io.Closer.close_on_invalidate are respected and default to $true. @Efl.Io.Closer.close_on_exec.set sets flag O_CLOEXEC. @since 1.19 diff --git a/src/lib/ecore_con/ecore_con_eet.c b/src/lib/ecore_con/ecore_con_eet.c index 2b3a48b5cf..e5d07d5d9d 100644 --- a/src/lib/ecore_con/ecore_con_eet.c +++ b/src/lib/ecore_con/ecore_con_eet.c @@ -686,18 +686,18 @@ _ecore_con_eet_base_efl_object_constructor(Eo *obj, Ecore_Con_Eet_Base_Data *pd) EOLIAN static void _ecore_con_eet_base_efl_object_destructor(Eo *obj, Ecore_Con_Eet_Base_Data *pd) { - efl_destructor(efl_super(obj, ECORE_CON_EET_BASE_CLASS)); - eet_data_descriptor_free(pd->edd); eet_data_descriptor_free(pd->matching); eina_hash_free(pd->data_callbacks); eina_hash_free(pd->raw_data_callbacks); + + efl_destructor(efl_super(obj, ECORE_CON_EET_BASE_CLASS)); } EOLIAN static Efl_Object * _ecore_con_eet_base_efl_object_finalize(Eo *obj, Ecore_Con_Eet_Base_Data *pd) { - if (pd->server) return obj; + if (pd->server) return efl_finalize(efl_super(obj, ECORE_CON_EET_BASE_CLASS)); eet_data_descriptor_free(pd->edd); eet_data_descriptor_free(pd->matching); diff --git a/src/lib/ecore_con/ecore_con_legacy.c b/src/lib/ecore_con/ecore_con_legacy.c index 356b25422a..a6246dba46 100644 --- a/src/lib/ecore_con/ecore_con_legacy.c +++ b/src/lib/ecore_con/ecore_con_legacy.c @@ -258,11 +258,11 @@ _ecore_con_client_socket_close(Ecore_Con_Client *cl) { if (!cl->socket) return; - /* socket may remain alive due other references, we don't own it */ - efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl); - if (!efl_io_closer_closed_get(cl->socket)) efl_io_closer_close(cl->socket); + + /* socket may remain alive due other references, we don't own it */ + efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl); } static void @@ -278,7 +278,7 @@ _ecore_con_client_free(Ecore_Con_Client *cl) if (cl->socket) { Eo *parent, *inner_socket = efl_io_buffered_stream_inner_io_get(cl->socket); - efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl); + if (efl_isa(inner_socket, EFL_NET_SOCKET_SSL_CLASS)) efl_event_callback_array_del(inner_socket, _ecore_con_client_socket_ssl_cbs(), cl); @@ -843,11 +843,9 @@ _ecore_con_client_ssl_upgrade_job(void *data, const Eina_Value v, efl_parent_set(inner_socket, socket); - efl_unref(inner_socket); /* socket keeps it */ - cl->socket = socket; efl_io_closer_close_on_exec_set(socket, EINA_TRUE); - efl_io_closer_close_on_destructor_set(socket, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(socket, EINA_TRUE); efl_event_callback_array_del(tcp_socket, _ecore_con_client_socket_cbs(), cl); efl_event_callback_array_add(socket, _ecore_con_client_socket_cbs(), cl); efl_event_callback_array_add(inner_socket, _ecore_con_client_socket_ssl_cbs(), cl); @@ -1626,7 +1624,6 @@ _ecore_con_server_server_ssl_job(void *data, const Eina_Value v, efl_parent_set(inner_server, server); efl_unref(ssl_ctx); /* inner_server keeps it */ - efl_unref(inner_server); /* server keeps it */ if (!_ecore_con_server_server_set(svr, server)) goto error_serve; @@ -1852,7 +1849,7 @@ _ecore_con_server_dialer_set(Ecore_Con_Server *svr, Eo *dialer) svr->dialer = dialer; efl_io_closer_close_on_exec_set(dialer, EINA_TRUE); - efl_io_closer_close_on_destructor_set(dialer, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(dialer, EINA_TRUE); efl_io_buffered_stream_timeout_inactivity_set(dialer, svr->timeout); efl_event_callback_array_add(dialer, _ecore_con_server_dialer_cbs(), svr); @@ -1993,7 +1990,6 @@ _ecore_con_server_dialer_ssl_job(void *data, const Eina_Value v, efl_parent_set(inner_dialer, dialer); efl_unref(ssl_ctx); /* inner_dialer keeps it */ - efl_unref(inner_dialer); /* dialer keeps it */ if (!_ecore_con_server_dialer_set(svr, dialer)) goto error_dial; @@ -2092,11 +2088,10 @@ _ecore_con_server_dialer_ssl_upgrade_job(void *data, const Eina_Value v, efl_parent_set(inner_dialer, dialer); efl_unref(ssl_ctx); /* inner_dialer keeps it */ - efl_unref(inner_dialer); /* dialer keeps it */ svr->dialer = dialer; efl_io_closer_close_on_exec_set(dialer, EINA_TRUE); - efl_io_closer_close_on_destructor_set(dialer, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(dialer, EINA_TRUE); efl_event_callback_array_del(tcp_dialer, _ecore_con_server_dialer_cbs(), svr); efl_event_callback_array_add(dialer, _ecore_con_server_dialer_cbs(), svr); diff --git a/src/lib/ecore_con/ecore_con_url.c b/src/lib/ecore_con/ecore_con_url.c index 6a9d06d582..3c9faea28c 100644 --- a/src/lib/ecore_con/ecore_con_url.c +++ b/src/lib/ecore_con/ecore_con_url.c @@ -922,7 +922,7 @@ ecore_con_url_post(Ecore_Con_Url *url_con, buffer = efl_add(EFL_IO_BUFFER_CLASS, efl_loop_get(url_con->dialer), efl_name_set(efl_added, "post-buffer"), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE)); EINA_SAFETY_ON_NULL_GOTO(buffer, error_buffer); @@ -938,7 +938,7 @@ ecore_con_url_post(Ecore_Con_Url *url_con, efl_name_set(efl_added, "send-copier"), efl_io_copier_source_set(efl_added, buffer), efl_io_copier_destination_set(efl_added, url_con->dialer), - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_event_callback_array_add(efl_added, _ecore_con_url_copier_cbs(), url_con)); EINA_SAFETY_ON_NULL_GOTO(copier, error_copier); @@ -1179,7 +1179,7 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, efl_name_set(efl_added, "upload-file"), efl_file_set(efl_added, filename, NULL), efl_io_file_flags_set(efl_added, O_RDONLY), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE)); EINA_SAFETY_ON_NULL_GOTO(file, error_file); @@ -1187,7 +1187,7 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, efl_name_set(efl_added, "send-copier"), efl_io_copier_source_set(efl_added, file), efl_io_copier_destination_set(efl_added, url_con->dialer), - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_event_callback_array_add(efl_added, _ecore_con_url_copier_cbs(), url_con)); EINA_SAFETY_ON_NULL_GOTO(copier, error_copier); diff --git a/src/lib/ecore_con/efl_net_dialer_http.c b/src/lib/ecore_con/efl_net_dialer_http.c index c31c0e4356..df1fedf61e 100644 --- a/src/lib/ecore_con/efl_net_dialer_http.c +++ b/src/lib/ecore_con/efl_net_dialer_http.c @@ -218,7 +218,7 @@ typedef struct Eina_Bool connected; Eina_Bool closed; Eina_Bool close_on_exec; - Eina_Bool close_on_destructor; + Eina_Bool close_on_invalidate; Eina_Bool pending_eos; Eina_Bool eos; Eina_Bool can_read; @@ -1129,7 +1129,7 @@ _efl_net_dialer_http_efl_object_constructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) } EOLIAN static void -_efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) +_efl_net_dialer_http_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Http_Data *pd) { if (pd->libproxy_thread) { @@ -1149,7 +1149,7 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) efl_io_closer_close(o); efl_event_thaw(o); } - else if (efl_io_closer_close_on_destructor_get(o) && + else if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -1157,6 +1157,12 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) efl_event_thaw(o); } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) +{ efl_net_dialer_http_response_headers_clear(o); if (pd->easy) @@ -1806,15 +1812,15 @@ _efl_net_dialer_http_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Ef } EOLIAN static void -_efl_net_dialer_http_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd, Eina_Bool close_on_destructor) +_efl_net_dialer_http_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd, Eina_Bool close_on_invalidate) { - pd->close_on_destructor = close_on_destructor; + pd->close_on_invalidate = close_on_invalidate; } EOLIAN static Eina_Bool -_efl_net_dialer_http_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd) +_efl_net_dialer_http_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd) { - return pd->close_on_destructor; + return pd->close_on_invalidate; } EOLIAN static Eina_Error diff --git a/src/lib/ecore_con/efl_net_dialer_http.eo b/src/lib/ecore_con/efl_net_dialer_http.eo index faecaebd35..7aab27cefb 100644 --- a/src/lib/ecore_con/efl_net_dialer_http.eo +++ b/src/lib/ecore_con/efl_net_dialer_http.eo @@ -393,6 +393,7 @@ class Efl.Net.Dialer_Http (Efl.Loop_Consumer, Efl.Net.Dialer, Efl.Io.Sizer) { implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Net.Dialer.dial; Efl.Net.Dialer.address_dial { get; set; } @@ -409,7 +410,7 @@ class Efl.Net.Dialer_Http (Efl.Loop_Consumer, Efl.Net.Dialer, Efl.Io.Sizer) { Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Sizer.resize; Efl.Io.Sizer.size { get; } } diff --git a/src/lib/ecore_con/efl_net_dialer_simple.c b/src/lib/ecore_con/efl_net_dialer_simple.c index 8bf7b169a6..8d25c370e2 100644 --- a/src/lib/ecore_con/efl_net_dialer_simple.c +++ b/src/lib/ecore_con/efl_net_dialer_simple.c @@ -48,6 +48,7 @@ static void _efl_net_dialer_simple_inner_io_connected(void *data, const Efl_Event *event) { Eo *o = data; + efl_event_callback_call(o, EFL_NET_DIALER_EVENT_CONNECTED, event->info); } @@ -87,19 +88,10 @@ _efl_net_dialer_simple_efl_object_finalize(Eo *o, Efl_Net_Dialer_Simple_Data *pd } EOLIAN static void -_efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *pd) +_efl_net_dialer_simple_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Simple_Data *pd EINA_UNUSED) { Eo *inner_io; - if (pd->inner_class) pd->inner_class = NULL; - - eina_stringshare_replace(&pd->proxy_url, NULL); - if (pd->line_delimiter.mem) - { - free((void *)pd->line_delimiter.mem); - pd->line_delimiter.mem = NULL; - } - inner_io = efl_io_buffered_stream_inner_io_get(o); if (inner_io) { @@ -108,6 +100,21 @@ _efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data * efl_parent_set(inner_io, NULL); } + efl_invalidate(efl_super(o, EFL_NET_DIALER_SIMPLE_CLASS)); +} + +EOLIAN static void +_efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *pd) +{ + if (pd->inner_class) pd->inner_class = NULL; + + eina_stringshare_replace(&pd->proxy_url, NULL); + if (pd->line_delimiter.mem) + { + free((void *)pd->line_delimiter.mem); + pd->line_delimiter.mem = NULL; + } + efl_destructor(efl_super(o, EFL_NET_DIALER_SIMPLE_CLASS)); } diff --git a/src/lib/ecore_con/efl_net_dialer_simple.eo b/src/lib/ecore_con/efl_net_dialer_simple.eo index e1e6522f68..38ec878808 100644 --- a/src/lib/ecore_con/efl_net_dialer_simple.eo +++ b/src/lib/ecore_con/efl_net_dialer_simple.eo @@ -69,6 +69,7 @@ class Efl.Net.Dialer_Simple (Efl.Net.Socket_Simple, Efl.Net.Dialer) { implements { Efl.Object.finalize; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Io.Buffered_Stream.inner_io { set; } Efl.Net.Dialer.dial; diff --git a/src/lib/ecore_con/efl_net_dialer_ssl.c b/src/lib/ecore_con/efl_net_dialer_ssl.c index 4ecfc03530..9a89ea90d2 100644 --- a/src/lib/ecore_con/efl_net_dialer_ssl.c +++ b/src/lib/ecore_con/efl_net_dialer_ssl.c @@ -98,13 +98,7 @@ _efl_net_dialer_ssl_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Ssl_Data *pd) { pd->sock = NULL; - efl_invalidate(efl_super(o, MY_CLASS)); -} - -EOLIAN static void -_efl_net_dialer_ssl_efl_object_destructor(Eo *o, Efl_Net_Dialer_Ssl_Data *pd) -{ - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -118,7 +112,7 @@ _efl_net_dialer_ssl_efl_object_destructor(Eo *o, Efl_Net_Dialer_Ssl_Data *pd) pd->ssl_ctx = NULL; } - efl_destructor(efl_super(o, MY_CLASS)); + efl_invalidate(efl_super(o, MY_CLASS)); } EOLIAN static void diff --git a/src/lib/ecore_con/efl_net_dialer_ssl.eo b/src/lib/ecore_con/efl_net_dialer_ssl.eo index 7a9ffe5cd0..c732e1c621 100644 --- a/src/lib/ecore_con/efl_net_dialer_ssl.eo +++ b/src/lib/ecore_con/efl_net_dialer_ssl.eo @@ -68,7 +68,6 @@ class Efl.Net.Dialer_Ssl (Efl.Net.Socket_Ssl, Efl.Net.Dialer) { Efl.Object.constructor; Efl.Object.finalize; Efl.Object.invalidate; - Efl.Object.destructor; Efl.Net.Dialer.dial; Efl.Net.Dialer.address_dial { get; } Efl.Net.Dialer.connected { get; set; } diff --git a/src/lib/ecore_con/efl_net_dialer_tcp.c b/src/lib/ecore_con/efl_net_dialer_tcp.c index 88f1bb7bb8..12e24b7238 100644 --- a/src/lib/ecore_con/efl_net_dialer_tcp.c +++ b/src/lib/ecore_con/efl_net_dialer_tcp.c @@ -53,9 +53,9 @@ _efl_net_dialer_tcp_efl_object_constructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd EI } EOLIAN static void -_efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd) +_efl_net_dialer_tcp_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Tcp_Data *pd) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -69,6 +69,12 @@ _efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd) pd->connect.thread = NULL; } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); eina_stringshare_replace(&pd->address_dial, NULL); diff --git a/src/lib/ecore_con/efl_net_dialer_tcp.eo b/src/lib/ecore_con/efl_net_dialer_tcp.eo index c46084b151..757e926ab5 100644 --- a/src/lib/ecore_con/efl_net_dialer_tcp.eo +++ b/src/lib/ecore_con/efl_net_dialer_tcp.eo @@ -24,6 +24,7 @@ class Efl.Net.Dialer_Tcp (Efl.Net.Socket_Tcp, Efl.Net.Dialer) { implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Net.Dialer.dial; Efl.Net.Dialer.address_dial { get; set; } diff --git a/src/lib/ecore_con/efl_net_dialer_udp.c b/src/lib/ecore_con/efl_net_dialer_udp.c index 1c7eda3fd1..89a7154710 100644 --- a/src/lib/ecore_con/efl_net_dialer_udp.c +++ b/src/lib/ecore_con/efl_net_dialer_udp.c @@ -54,9 +54,9 @@ _efl_net_dialer_udp_efl_object_constructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd EI } EOLIAN static void -_efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd) +_efl_net_dialer_udp_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Udp_Data *pd) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -70,6 +70,12 @@ _efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd) pd->resolver.thread = NULL; } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); eina_stringshare_replace(&pd->address_dial, NULL); diff --git a/src/lib/ecore_con/efl_net_dialer_udp.eo b/src/lib/ecore_con/efl_net_dialer_udp.eo index 56f34413af..4e5a407015 100644 --- a/src/lib/ecore_con/efl_net_dialer_udp.eo +++ b/src/lib/ecore_con/efl_net_dialer_udp.eo @@ -27,6 +27,7 @@ class Efl.Net.Dialer_Udp (Efl.Net.Socket_Udp, Efl.Net.Dialer) { implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Net.Dialer.dial; Efl.Net.Dialer.address_dial { get; set; } diff --git a/src/lib/ecore_con/efl_net_dialer_unix.c b/src/lib/ecore_con/efl_net_dialer_unix.c index 9c20bf19c6..683a37b89f 100644 --- a/src/lib/ecore_con/efl_net_dialer_unix.c +++ b/src/lib/ecore_con/efl_net_dialer_unix.c @@ -43,9 +43,9 @@ _efl_net_dialer_unix_efl_object_constructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd } EOLIAN static void -_efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd) +_efl_net_dialer_unix_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Unix_Data *pd) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -59,6 +59,12 @@ _efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd) pd->connect.thread = NULL; } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); eina_stringshare_replace(&pd->address_dial, NULL); diff --git a/src/lib/ecore_con/efl_net_dialer_unix.eo b/src/lib/ecore_con/efl_net_dialer_unix.eo index aafe27fdf6..a45d2be5c7 100644 --- a/src/lib/ecore_con/efl_net_dialer_unix.eo +++ b/src/lib/ecore_con/efl_net_dialer_unix.eo @@ -12,6 +12,7 @@ class Efl.Net.Dialer_Unix (Efl.Net.Socket_Unix, Efl.Net.Dialer) { implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Net.Dialer.dial; Efl.Net.Dialer.address_dial { get; set; } diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.c b/src/lib/ecore_con/efl_net_dialer_websocket.c index 79e03f08cc..80c598ac4b 100644 --- a/src/lib/ecore_con/efl_net_dialer_websocket.c +++ b/src/lib/ecore_con/efl_net_dialer_websocket.c @@ -1374,15 +1374,15 @@ _efl_net_dialer_websocket_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSE } EOLIAN static void -_efl_net_dialer_websocket_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd, Eina_Bool close_on_destructor) +_efl_net_dialer_websocket_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd, Eina_Bool close_on_invalidate) { - efl_io_closer_close_on_destructor_set(pd->http, close_on_destructor); + efl_io_closer_close_on_invalidate_set(pd->http, close_on_invalidate); } EOLIAN static Eina_Bool -_efl_net_dialer_websocket_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd) +_efl_net_dialer_websocket_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd) { - return efl_io_closer_close_on_destructor_get(pd->http); + return efl_io_closer_close_on_invalidate_get(pd->http); } EOLIAN static void diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.eo b/src/lib/ecore_con/efl_net_dialer_websocket.eo index a994e590c2..f22bf54104 100644 --- a/src/lib/ecore_con/efl_net_dialer_websocket.eo +++ b/src/lib/ecore_con/efl_net_dialer_websocket.eo @@ -331,6 +331,6 @@ class Efl.Net.Dialer_Websocket (Efl.Loop_Consumer, Efl.Net.Dialer) { Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } } } diff --git a/src/lib/ecore_con/efl_net_server_simple.c b/src/lib/ecore_con/efl_net_server_simple.c index 4dec2200fb..8c0c4a6732 100644 --- a/src/lib/ecore_con/efl_net_server_simple.c +++ b/src/lib/ecore_con/efl_net_server_simple.c @@ -161,10 +161,8 @@ _efl_net_server_simple_efl_object_invalidate(Eo *o, Efl_Net_Server_Simple_Data * if (pd->inner_server) { efl_event_callback_array_del(pd->inner_server, _efl_net_server_simple_inner_server_cbs(), o); - if (efl_parent_get(pd->inner_server) == o) - efl_parent_set(pd->inner_server, NULL); - efl_unref(pd->inner_server); + efl_xunref(pd->inner_server, o); pd->inner_server = NULL; } @@ -232,7 +230,7 @@ _efl_net_server_simple_inner_server_set(Eo *o, Efl_Net_Server_Simple_Data *pd, E EINA_SAFETY_ON_TRUE_RETURN(pd->inner_server != NULL); EINA_SAFETY_ON_FALSE_RETURN(efl_isa(server, EFL_NET_SERVER_INTERFACE)); - pd->inner_server = efl_ref(server); + pd->inner_server = efl_xref(server, o); efl_event_callback_array_add(server, _efl_net_server_simple_inner_server_cbs(), o); DBG("%p inner_server=%p (%s)", o, server, efl_class_name_get(efl_class_get(server))); } diff --git a/src/lib/ecore_con/efl_net_server_ssl.c b/src/lib/ecore_con/efl_net_server_ssl.c index 7315484b1c..c865e7d0ab 100644 --- a/src/lib/ecore_con/efl_net_server_ssl.c +++ b/src/lib/ecore_con/efl_net_server_ssl.c @@ -89,7 +89,7 @@ _efl_net_server_ssl_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Ssl_Data client_tcp = efl_add(EFL_NET_SOCKET_TCP_CLASS, o, efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_loop_fd_set(efl_added, client_fd)); if (!client_tcp) { diff --git a/src/lib/ecore_con/efl_net_server_tcp.c b/src/lib/ecore_con/efl_net_server_tcp.c index b56984f853..e4e5bcb377 100644 --- a/src/lib/ecore_con/efl_net_server_tcp.c +++ b/src/lib/ecore_con/efl_net_server_tcp.c @@ -253,7 +253,7 @@ _efl_net_server_tcp_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Tcp_Data { Eo *client = efl_add(EFL_NET_SOCKET_TCP_CLASS, o, efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_loop_fd_set(efl_added, client_fd)); if (!client) { diff --git a/src/lib/ecore_con/efl_net_server_udp.c b/src/lib/ecore_con/efl_net_server_udp.c index 674945ec86..ced3e04662 100644 --- a/src/lib/ecore_con/efl_net_server_udp.c +++ b/src/lib/ecore_con/efl_net_server_udp.c @@ -369,7 +369,7 @@ _efl_net_server_udp_efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Serve } client = efl_add(EFL_NET_SERVER_UDP_CLIENT_CLASS, o, - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_net_socket_address_local_set(efl_added, efl_net_server_address_get(o)), _efl_net_server_udp_client_init(efl_added, fd, (const struct sockaddr *)&addr, addrlen, str), diff --git a/src/lib/ecore_con/efl_net_server_udp_client.c b/src/lib/ecore_con/efl_net_server_udp_client.c index 33d4716269..52a9d38008 100644 --- a/src/lib/ecore_con/efl_net_server_udp_client.c +++ b/src/lib/ecore_con/efl_net_server_udp_client.c @@ -42,7 +42,7 @@ typedef struct _Efl_Net_Server_Udp_Client_Data struct sockaddr *addr_remote; socklen_t addr_remote_len; SOCKET fd; - Eina_Bool close_on_destructor; + Eina_Bool close_on_invalidate; Eina_Bool eos; Eina_Bool can_read; Eina_Bool can_write; @@ -71,9 +71,9 @@ _efl_net_server_udp_client_cleanup(Efl_Net_Server_Udp_Client_Data *pd) } EOLIAN static void -_efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Client_Data *pd) +_efl_net_server_udp_client_efl_object_invalidate(Eo *o, Efl_Net_Server_Udp_Client_Data *pd EINA_UNUSED) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -81,6 +81,12 @@ _efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Clien efl_event_thaw(o); } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Client_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); _efl_net_server_udp_client_cleanup(pd); @@ -269,15 +275,15 @@ _efl_net_server_udp_client_efl_io_closer_closed_get(const Eo *o EINA_UNUSED, Efl } EOLIAN static void -_efl_net_server_udp_client_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd, Eina_Bool close_on_destructor) +_efl_net_server_udp_client_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd, Eina_Bool close_on_invalidate) { - pd->close_on_destructor = close_on_destructor; + pd->close_on_invalidate = close_on_invalidate; } EOLIAN static Eina_Bool -_efl_net_server_udp_client_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd) +_efl_net_server_udp_client_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd) { - return pd->close_on_destructor; + return pd->close_on_invalidate; } EOLIAN static Eina_Bool diff --git a/src/lib/ecore_con/efl_net_server_udp_client.eo b/src/lib/ecore_con/efl_net_server_udp_client.eo index 12f5bbce4a..6eeeedef31 100644 --- a/src/lib/ecore_con/efl_net_server_udp_client.eo +++ b/src/lib/ecore_con/efl_net_server_udp_client.eo @@ -26,10 +26,11 @@ class Efl.Net.Server_Udp_Client (Efl.Object, Efl.Net.Socket) { implements { Efl.Object.finalize; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Closer.close_on_exec { get; set; } Efl.Io.Reader.can_read { get; set; } Efl.Io.Reader.eos { get; set; } diff --git a/src/lib/ecore_con/efl_net_server_unix.c b/src/lib/ecore_con/efl_net_server_unix.c index a0ab684858..38280c27c8 100644 --- a/src/lib/ecore_con/efl_net_server_unix.c +++ b/src/lib/ecore_con/efl_net_server_unix.c @@ -246,7 +246,7 @@ _efl_net_server_unix_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Unix_Dat { Eo *client = efl_add(EFL_NET_SOCKET_UNIX_CLASS, o, efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_loop_fd_set(efl_added, client_fd)); if (!client) { diff --git a/src/lib/ecore_con/efl_net_server_windows.c b/src/lib/ecore_con/efl_net_server_windows.c index fc01728d42..1e0375ead1 100644 --- a/src/lib/ecore_con/efl_net_server_windows.c +++ b/src/lib/ecore_con/efl_net_server_windows.c @@ -231,7 +231,7 @@ _efl_net_server_windows_client_new(Eo *o, Efl_Net_Server_Windows_Data *pd) } pd->next_client = efl_add(EFL_NET_SOCKET_WINDOWS_CLASS, o, - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE)); + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE)); if (!pd->next_client) { err = ENOMEM; diff --git a/src/lib/ecore_con/efl_net_socket_fd.c b/src/lib/ecore_con/efl_net_socket_fd.c index 14c2142006..3ade365fc2 100644 --- a/src/lib/ecore_con/efl_net_socket_fd.c +++ b/src/lib/ecore_con/efl_net_socket_fd.c @@ -78,7 +78,7 @@ _efl_net_socket_fd_efl_object_constructor(Eo *o, Efl_Net_Socket_Fd_Data *pd) o = efl_constructor(efl_super(o, MY_CLASS)); efl_io_closer_close_on_exec_set(o, EINA_TRUE); - efl_io_closer_close_on_destructor_set(o, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(o, EINA_TRUE); efl_io_reader_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); efl_io_writer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); efl_io_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); @@ -87,9 +87,9 @@ _efl_net_socket_fd_efl_object_constructor(Eo *o, Efl_Net_Socket_Fd_Data *pd) } EOLIAN static void -_efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd) +_efl_net_socket_fd_efl_object_invalidate(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -97,6 +97,12 @@ _efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd) efl_event_thaw(o); } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); eina_stringshare_replace(&pd->address_local, NULL); diff --git a/src/lib/ecore_con/efl_net_socket_fd.eo b/src/lib/ecore_con/efl_net_socket_fd.eo index 8cce3ff318..951fe7f8cc 100644 --- a/src/lib/ecore_con/efl_net_socket_fd.eo +++ b/src/lib/ecore_con/efl_net_socket_fd.eo @@ -5,7 +5,7 @@ class Efl.Net.Socket_Fd (Efl.Loop_Fd, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io created by an dialer or server. @Efl.Io.Closer.close_on_exec and - @Efl.Io.Closer.close_on_destructor are respected and default to + @Efl.Io.Closer.close_on_invalidate are respected and default to $true. @since 1.19 @@ -32,6 +32,7 @@ class Efl.Net.Socket_Fd (Efl.Loop_Fd, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io implements { Efl.Object.finalize; Efl.Object.constructor; + Efl.Object.invalidate; Efl.Object.destructor; Efl.Loop_Fd.fd { set; } Efl.Io.Closer.close; diff --git a/src/lib/ecore_con/efl_net_socket_ssl.c b/src/lib/ecore_con/efl_net_socket_ssl.c index a281d0f722..b91f6649d3 100644 --- a/src/lib/ecore_con/efl_net_socket_ssl.c +++ b/src/lib/ecore_con/efl_net_socket_ssl.c @@ -445,9 +445,9 @@ _efl_net_socket_ssl_efl_object_constructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd) } EOLIAN static void -_efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd) +_efl_net_socket_ssl_efl_object_invalidate(Eo *o, Efl_Net_Socket_Ssl_Data *pd EINA_UNUSED) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -455,6 +455,12 @@ _efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd) efl_event_thaw(o); } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); pd->torndown = EINA_TRUE; @@ -617,15 +623,15 @@ _efl_net_socket_ssl_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl } EOLIAN static void -_efl_net_socket_ssl_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd, Eina_Bool close_on_destructor) +_efl_net_socket_ssl_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd, Eina_Bool close_on_invalidate) { - if (pd->sock) efl_io_closer_close_on_destructor_set(pd->sock, close_on_destructor); + if (pd->sock) efl_io_closer_close_on_invalidate_set(pd->sock, close_on_invalidate); } EOLIAN static Eina_Bool -_efl_net_socket_ssl_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd) +_efl_net_socket_ssl_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd) { - return pd->sock && efl_io_closer_close_on_destructor_get(pd->sock); + return pd->sock && efl_io_closer_close_on_invalidate_get(pd->sock); } EOLIAN static const char * diff --git a/src/lib/ecore_con/efl_net_socket_ssl.eo b/src/lib/ecore_con/efl_net_socket_ssl.eo index 2e6ee11099..4f461814b3 100644 --- a/src/lib/ecore_con/efl_net_socket_ssl.eo +++ b/src/lib/ecore_con/efl_net_socket_ssl.eo @@ -84,12 +84,13 @@ class Efl.Net.Socket_Ssl (Efl.Loop_Consumer, Efl.Net.Socket) { implements { Efl.Object.constructor; - Efl.Object.destructor; Efl.Object.finalize; + Efl.Object.invalidate; + Efl.Object.destructor; Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Reader.read; Efl.Io.Reader.can_read { get; set; } Efl.Io.Reader.eos { get; set; } diff --git a/src/lib/ecore_con/efl_net_socket_windows.c b/src/lib/ecore_con/efl_net_socket_windows.c index 33e166aea1..c69d0a8b6d 100644 --- a/src/lib/ecore_con/efl_net_socket_windows.c +++ b/src/lib/ecore_con/efl_net_socket_windows.c @@ -47,7 +47,7 @@ typedef struct _Efl_Net_Socket_Windows_Data Eina_Bool can_write; Eina_Bool io_started; Eina_Bool close_on_exec; - Eina_Bool close_on_destructor; + Eina_Bool close_on_invalidate; } Efl_Net_Socket_Windows_Data; struct _Efl_Net_Socket_Windows_Operation @@ -634,9 +634,9 @@ _efl_net_socket_windows_efl_object_constructor(Eo *o, Efl_Net_Socket_Windows_Dat } EOLIAN static void -_efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data *pd) +_efl_net_socket_windows_efl_object_invalidate(Eo *o, Efl_Net_Socket_Windows_Data *pd) { - if (efl_io_closer_close_on_destructor_get(o) && + if (efl_io_closer_close_on_invalidate_get(o) && (!efl_io_closer_closed_get(o))) { efl_event_freeze(o); @@ -644,6 +644,12 @@ _efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data efl_event_thaw(o); } + efl_invalidate(efl_super(o, MY_CLASS)); +} + +EOLIAN static void +_efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data *pd) +{ efl_destructor(efl_super(o, MY_CLASS)); eina_stringshare_replace(&pd->address_local, NULL); @@ -748,15 +754,15 @@ _efl_net_socket_windows_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, } EOLIAN static void -_efl_net_socket_windows_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd, Eina_Bool close_on_destructor) +_efl_net_socket_windows_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd, Eina_Bool close_on_invalidate) { - pd->close_on_destructor = close_on_destructor; + pd->close_on_invalidate = close_on_invalidate; } EOLIAN static Eina_Bool -_efl_net_socket_windows_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd) +_efl_net_socket_windows_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd) { - return pd->close_on_destructor; + return pd->close_on_invalidate; } EOLIAN static Eina_Error diff --git a/src/lib/ecore_con/efl_net_socket_windows.eo b/src/lib/ecore_con/efl_net_socket_windows.eo index 8df3b4c860..95cdea693c 100644 --- a/src/lib/ecore_con/efl_net_socket_windows.eo +++ b/src/lib/ecore_con/efl_net_socket_windows.eo @@ -14,7 +14,7 @@ class Efl.Net.Socket_Windows (Efl.Loop_Consumer, Efl.Net.Socket) { Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Reader.read; Efl.Io.Reader.can_read { get; set; } Efl.Io.Reader.eos { get; set; } diff --git a/src/lib/ecore_file/ecore_file_download.c b/src/lib/ecore_file/ecore_file_download.c index 1323dbc8e6..54666693d2 100644 --- a/src/lib/ecore_file/ecore_file_download.c +++ b/src/lib/ecore_file/ecore_file_download.c @@ -230,14 +230,14 @@ ecore_file_download_full(const char *url, efl_file_set(efl_added, dst, NULL), efl_io_file_flags_set(efl_added, O_WRONLY | O_CREAT), efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_io_file_mode_set(efl_added, 0644)); EINA_SAFETY_ON_NULL_GOTO(job->output, error_output); job->copier = efl_add(EFL_IO_COPIER_CLASS, loop, efl_io_copier_source_set(efl_added, job->input), efl_io_copier_destination_set(efl_added, job->output), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_event_callback_array_add(efl_added, ecore_file_download_copier_cbs(), job)); EINA_SAFETY_ON_NULL_GOTO(job->copier, error_copier); diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c index d4b11617ce..babf033a17 100644 --- a/src/lib/ecore_ipc/ecore_ipc.c +++ b/src/lib/ecore_ipc/ecore_ipc.c @@ -745,21 +745,21 @@ ecore_ipc_server_connect(Ecore_Ipc_Type type, char *name, int port, const void * goto error_dialer; } - efl_io_closer_close_on_destructor_set(svr->dialer.dialer, EINA_TRUE); + efl_io_closer_close_on_invalidate_set(svr->dialer.dialer, EINA_TRUE); efl_event_callback_array_add(svr->dialer.dialer, _ecore_ipc_dialer_cbs(), svr); svr->dialer.input = efl_add(EFL_IO_QUEUE_CLASS, loop); EINA_SAFETY_ON_NULL_GOTO(svr->dialer.input, error); svr->dialer.send_copier = efl_add(EFL_IO_COPIER_CLASS, loop, - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_io_copier_source_set(efl_added, svr->dialer.input), efl_io_copier_destination_set(efl_added, svr->dialer.dialer), efl_event_callback_array_add(efl_added, _ecore_ipc_dialer_copier_cbs(), svr)); EINA_SAFETY_ON_NULL_GOTO(svr->dialer.send_copier, error); svr->dialer.recv_copier = efl_add(EFL_IO_COPIER_CLASS, loop, - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_io_copier_source_set(efl_added, svr->dialer.dialer), efl_event_callback_array_add(efl_added, _ecore_ipc_dialer_copier_cbs(), svr), efl_event_callback_add(efl_added, EFL_IO_COPIER_EVENT_DATA, _ecore_ipc_dialer_copier_data, svr)); @@ -1343,14 +1343,14 @@ _ecore_ipc_server_client_add(void *data, const Efl_Event *event) EINA_SAFETY_ON_NULL_GOTO(cl->socket.input, error); cl->socket.send_copier = efl_add(EFL_IO_COPIER_CLASS, loop, - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_io_copier_source_set(efl_added, cl->socket.input), efl_io_copier_destination_set(efl_added, cl->socket.socket), efl_event_callback_array_add(efl_added, _ecore_ipc_client_socket_copier_cbs(), cl)); EINA_SAFETY_ON_NULL_GOTO(cl->socket.send_copier, error); cl->socket.recv_copier = efl_add(EFL_IO_COPIER_CLASS, loop, - efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE), efl_io_copier_source_set(efl_added, cl->socket.socket), efl_event_callback_array_add(efl_added, _ecore_ipc_client_socket_copier_cbs(), cl), efl_event_callback_add(efl_added, EFL_IO_COPIER_EVENT_DATA, _ecore_ipc_client_socket_copier_data, cl)); diff --git a/src/lib/efl/interfaces/efl_io_buffer.c b/src/lib/efl/interfaces/efl_io_buffer.c index 5a0a0d10ba..c0c505e6b8 100644 --- a/src/lib/efl/interfaces/efl_io_buffer.c +++ b/src/lib/efl/interfaces/efl_io_buffer.c @@ -356,12 +356,12 @@ _efl_io_buffer_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_B } EOLIAN static void -_efl_io_buffer_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED, Eina_Bool close_on_destructor EINA_UNUSED) +_efl_io_buffer_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED, Eina_Bool close_on_invalidate EINA_UNUSED) { } EOLIAN static Eina_Bool -_efl_io_buffer_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED) +_efl_io_buffer_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED) { return EINA_TRUE; } diff --git a/src/lib/efl/interfaces/efl_io_buffer.eo b/src/lib/efl/interfaces/efl_io_buffer.eo index 75358d7bb3..428d45aeaa 100644 --- a/src/lib/efl/interfaces/efl_io_buffer.eo +++ b/src/lib/efl/interfaces/efl_io_buffer.eo @@ -153,7 +153,7 @@ class Efl.Io.Buffer (Efl.Object, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Ef Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } Efl.Io.Sizer.resize; Efl.Io.Sizer.size { get; } Efl.Io.Positioner.seek; diff --git a/src/lib/efl/interfaces/efl_io_closer.eo b/src/lib/efl/interfaces/efl_io_closer.eo index f14c94401f..863be86c31 100644 --- a/src/lib/efl/interfaces/efl_io_closer.eo +++ b/src/lib/efl/interfaces/efl_io_closer.eo @@ -59,16 +59,16 @@ mixin Efl.Io.Closer { } } - @property close_on_destructor { - [[If true will automatically close() on object destructor. + @property close_on_invalidate { + [[If true will automatically close() on object invalidate. - If the object was deleted without close, this property - will state whenever it should be closed or not. + If the object was disconnected from its parent (including the main loop) without close, + this property will state whenever it should be closed or not. ]] get @pure_virtual { } set @pure_virtual { } values { - close_on_destructor: bool; [[$true if close on destructor, $false otherwise]] + close_on_invalidate: bool; [[$true if close on invalidate, $false otherwise]] } } } diff --git a/src/lib/efl/interfaces/efl_io_queue.c b/src/lib/efl/interfaces/efl_io_queue.c index 9885a5b693..20f3e951ef 100644 --- a/src/lib/efl/interfaces/efl_io_queue.c +++ b/src/lib/efl/interfaces/efl_io_queue.c @@ -483,12 +483,12 @@ _efl_io_queue_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_Qu } EOLIAN static void -_efl_io_queue_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED, Eina_Bool close_on_destructor EINA_UNUSED) +_efl_io_queue_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED, Eina_Bool close_on_invalidate EINA_UNUSED) { } EOLIAN static Eina_Bool -_efl_io_queue_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED) +_efl_io_queue_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED) { return EINA_TRUE; } diff --git a/src/lib/efl/interfaces/efl_io_queue.eo b/src/lib/efl/interfaces/efl_io_queue.eo index 46bcde493f..f89c683c3e 100644 --- a/src/lib/efl/interfaces/efl_io_queue.eo +++ b/src/lib/efl/interfaces/efl_io_queue.eo @@ -116,6 +116,6 @@ class Efl.Io.Queue (Efl.Object, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer) { Efl.Io.Closer.close; Efl.Io.Closer.closed { get; } Efl.Io.Closer.close_on_exec { get; set; } - Efl.Io.Closer.close_on_destructor { get; set; } + Efl.Io.Closer.close_on_invalidate { get; set; } } } diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index bc274ae50d..37f1ef90ae 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -945,7 +945,7 @@ _efl_ui_image_remote_copier_cancel(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd) Eo *copier = sd->remote.copier; if (!copier) return; - /* copier is flagged as close_on_destructor, thus: + /* copier is flagged as close_on_invalidate, thus: * efl_del() * -> efl_io_closer_close() * -> "done" event @@ -1056,7 +1056,7 @@ _efl_ui_image_download(Eo *obj, Efl_Ui_Image_Data *sd, const char *url, const ch sd->remote.copier = efl_add(EFL_IO_COPIER_CLASS, obj, efl_io_copier_source_set(efl_added, dialer), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_event_callback_array_add(efl_added, _efl_ui_image_remote_copier_cbs(), obj)); EINA_SAFETY_ON_NULL_GOTO(sd->remote.copier, error_copier); eina_stringshare_replace(&sd->remote.key, key); diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index d4426aafd1..183b2712ab 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -2221,7 +2221,7 @@ _efl_ui_image_zoomable_remote_copier_cancel(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zo Eo *copier = sd->remote.copier; if (!copier) return; - /* copier is flagged as close_on_destructor, thus: + /* copier is flagged as close_on_invalidate, thus: * efl_del() * -> efl_io_closer_close() * -> "done" event @@ -2323,7 +2323,7 @@ _efl_ui_image_zoomable_download(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, const c sd->remote.copier = efl_add(EFL_IO_COPIER_CLASS, obj, efl_io_copier_source_set(efl_added, dialer), - efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), + efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE), efl_event_callback_array_add(efl_added, _efl_ui_image_zoomable_remote_copier_cbs(), obj)); EINA_SAFETY_ON_NULL_GOTO(sd->remote.copier, error_copier); diff --git a/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c b/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c index 8cedac0d1e..45778f8ba8 100644 --- a/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c +++ b/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c @@ -70,8 +70,6 @@ _eet_data_cb(void *data EINA_UNUSED, Ecore_Con_Reply *reply, const char *protoco char toSend[] = SRV_MSG; ECE_Test *received = value; - fprintf(stderr, "id: %d\n message: %s\n", - received->id, received->message); fail_if(strcmp(received->message, CLI_MSG)); fail_if(received->id != 1);