From efa9b1bf68e9e18dffca12573b6fe533ae2945c9 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sat, 25 Nov 2017 01:49:11 +0100 Subject: [PATCH] Allow widget_network() to be destroyed -- avoid allowing widget_network_recv()/send() if it's destroyed --- src/widget_network.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/widget_network.c b/src/widget_network.c index e134fb5..5950147 100644 --- a/src/widget_network.c +++ b/src/widget_network.c @@ -32,12 +32,18 @@ static void widget_network_recv_clear(void *arg) { } void widget_network_send() { + if (!widget_network) + return; + if (!send_timer) send_timer=mgos_set_timer(100, 0, widget_network_send_clear, NULL); widget_network_ev(EV_WIDGET_REDRAW, widget_network, NULL); } void widget_network_recv() { + if (!widget_network) + return; + if (!recv_timer) recv_timer=mgos_set_timer(100, 0, widget_network_recv_clear, NULL); widget_network_ev(EV_WIDGET_REDRAW, widget_network, NULL); @@ -58,6 +64,10 @@ void widget_network_ev(int ev, struct widget_t *w, void *ev_data) { case EV_WIDGET_TOUCH_UP: case EV_WIDGET_TOUCH_DOWN: case EV_WIDGET_DESTROY: + widget_network=NULL; + send_timer=0; + recv_timer=0; + break; default: // EV_WIDGET_NONE break; }