From: Cedric BAIL Date: Tue, 1 May 2018 23:21:13 +0000 (-0700) Subject: ecore_con: trigger teardown during invalidate. X-Git-Tag: upstream/1.21.0~613 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=810a9d2b8e1fca7135b6c2cfcb5c48311551fce9;p=platform%2Fupstream%2Fefl.git ecore_con: trigger teardown during invalidate. Delaying teardown might result in code expecting parent to still be valid, especially call to efl_provider_find won't work anymore. Differential Revision: https://phab.enlightenment.org/D6083 --- diff --git a/src/lib/ecore_con/efl_net_socket_ssl.c b/src/lib/ecore_con/efl_net_socket_ssl.c index b91f664..3f9e6ce 100644 --- a/src/lib/ecore_con/efl_net_socket_ssl.c +++ b/src/lib/ecore_con/efl_net_socket_ssl.c @@ -244,7 +244,6 @@ efl_net_socket_ssl_sock_connected(void *data, const Efl_Event *event EINA_UNUSED { WRN("SSL=%p failed handshake: %s", o, eina_error_msg_get(err)); efl_io_closer_close(o); - return; } efl_unref(o); @@ -455,14 +454,6 @@ _efl_net_socket_ssl_efl_object_invalidate(Eo *o, Efl_Net_Socket_Ssl_Data *pd EIN 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; efl_net_ssl_conn_teardown(&pd->ssl_conn); if (pd->sock) @@ -481,7 +472,15 @@ _efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd) pd->context = NULL; } + 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) +{ eina_stringshare_replace(&pd->hostname_override, NULL); + + efl_destructor(efl_super(o, MY_CLASS)); } EOLIAN static Eina_Error