forked from enlightenment/efl
ecore_con: if we rely on parent lifecycle for automatic destruction, do not call efl_del in the destructor.
This commit is contained in:
parent
a327a0e7c7
commit
57320c190f
|
@ -93,6 +93,14 @@ _efl_net_dialer_ssl_efl_object_finalize(Eo *o, Efl_Net_Dialer_Ssl_Data *pd)
|
|||
return efl_finalize(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_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)
|
||||
{
|
||||
|
@ -104,12 +112,6 @@ _efl_net_dialer_ssl_efl_object_destructor(Eo *o, Efl_Net_Dialer_Ssl_Data *pd)
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
if (pd->sock)
|
||||
{
|
||||
efl_del(pd->sock);
|
||||
pd->sock = NULL;
|
||||
}
|
||||
|
||||
if (pd->ssl_ctx)
|
||||
{
|
||||
efl_unref(pd->ssl_ctx);
|
||||
|
|
|
@ -66,8 +66,9 @@ class Efl.Net.Dialer_Ssl (Efl.Net.Socket_Ssl, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
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; }
|
||||
|
|
|
@ -955,6 +955,14 @@ _efl_net_dialer_websocket_efl_object_constructor(Eo *o, Efl_Net_Dialer_Websocket
|
|||
return o;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_websocket_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Websocket_Data *pd)
|
||||
{
|
||||
pd->http = NULL;
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_websocket_efl_object_destructor(Eo *o, Efl_Net_Dialer_Websocket_Data *pd)
|
||||
{
|
||||
|
@ -962,9 +970,6 @@ _efl_net_dialer_websocket_efl_object_destructor(Eo *o, Efl_Net_Dialer_Websocket_
|
|||
|
||||
efl_event_callback_array_del(pd->http, _efl_net_dialer_websocket_http_cbs(), o);
|
||||
|
||||
efl_del(pd->http);
|
||||
pd->http = NULL;
|
||||
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_dial, NULL);
|
||||
|
|
|
@ -314,6 +314,7 @@ class Efl.Net.Dialer_Websocket (Efl.Loop_Consumer, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; set; }
|
||||
|
|
|
@ -149,7 +149,6 @@ _efl_net_server_simple_efl_object_finalize(Eo *o, Efl_Net_Server_Simple_Data *pd
|
|||
DBG("created new inner server %p (%s)", server, efl_class_name_get(efl_class_get(server)));
|
||||
|
||||
efl_net_server_simple_inner_server_set(o, server);
|
||||
efl_unref(server);
|
||||
}
|
||||
|
||||
end:
|
||||
|
@ -157,18 +156,21 @@ _efl_net_server_simple_efl_object_finalize(Eo *o, Efl_Net_Server_Simple_Data *pd
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_simple_efl_object_destructor(Eo *o, Efl_Net_Server_Simple_Data *pd)
|
||||
_efl_net_server_simple_efl_object_invalidate(Eo *o, Efl_Net_Server_Simple_Data *pd)
|
||||
{
|
||||
if (pd->inner_class) pd->inner_class = NULL;
|
||||
|
||||
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);
|
||||
pd->inner_server = NULL;
|
||||
}
|
||||
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
pd->inner_class = NULL;
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
|
|
|
@ -44,7 +44,7 @@ class Efl.Net.Server_Simple (Efl.Loop_Consumer, Efl.Net.Server) {
|
|||
|
||||
implements {
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Net.Server.serve;
|
||||
Efl.Net.Server.client_announce;
|
||||
Efl.Net.Server.address { get; }
|
||||
|
|
|
@ -148,15 +148,17 @@ _efl_net_server_ssl_ctx_del(void *data, const Efl_Event *event EINA_UNUSED)
|
|||
pd->ssl_ctx = NULL;
|
||||
}
|
||||
|
||||
EOLIAN void
|
||||
_efl_net_server_ssl_efl_object_invalidate(Eo *o, Efl_Net_Server_Ssl_Data *pd)
|
||||
{
|
||||
pd->server = NULL;
|
||||
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN void
|
||||
_efl_net_server_ssl_efl_object_destructor(Eo *o, Efl_Net_Server_Ssl_Data *pd)
|
||||
{
|
||||
if (pd->server)
|
||||
{
|
||||
efl_del(pd->server);
|
||||
pd->server = NULL;
|
||||
}
|
||||
|
||||
if (pd->ssl_ctx)
|
||||
{
|
||||
efl_event_callback_del(pd->ssl_ctx, EFL_EVENT_DEL, _efl_net_server_ssl_ctx_del, o);
|
||||
|
|
|
@ -21,6 +21,7 @@ class Efl.Net.Server_Ssl (Efl.Net.Server_Tcp) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Server.client_announce;
|
||||
Efl.Net.Server_Fd.client_add;
|
||||
|
|
|
@ -276,15 +276,17 @@ _efl_net_server_windows_efl_object_constructor(Eo *o, Efl_Net_Server_Windows_Dat
|
|||
return efl_constructor(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_windows_efl_object_invalidate(Eo *o, Efl_Net_Server_Windows_Data *pd)
|
||||
{
|
||||
pd->next_client = NULL;
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_windows_efl_object_destructor(Eo *o, Efl_Net_Server_Windows_Data *pd)
|
||||
{
|
||||
if (pd->next_client)
|
||||
{
|
||||
efl_del(pd->next_client);
|
||||
pd->next_client = NULL;
|
||||
}
|
||||
|
||||
while (pd->pending_clients)
|
||||
{
|
||||
Eo *client = pd->pending_clients->data;
|
||||
|
|
|
@ -25,6 +25,7 @@ class Efl.Net.Server_Windows (Efl.Loop_Consumer, Efl.Net.Server) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Server.address { get; set; }
|
||||
Efl.Net.Server.clients_count { get; set; }
|
||||
|
|
Loading…
Reference in New Issue