Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38952f8405 | ||
|
|
68ea3bb3a4 |
+22
-4
@@ -372,6 +372,12 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
|||||||
if (res == TF_RENEW) {
|
if (res == TF_RENEW) {
|
||||||
renew_id_listener(ilst);
|
renew_id_listener(ilst);
|
||||||
}
|
}
|
||||||
|
else if (res == TF_CLOSE) {
|
||||||
|
// Set userdata to NULL to avoid calling user for cleanup
|
||||||
|
ilst->userdata = NULL;
|
||||||
|
ilst->userdata2 = NULL;
|
||||||
|
cleanup_id_listener(tf, i, ilst);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -389,8 +395,12 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
|||||||
res = tlst->fn(tf, &msg);
|
res = tlst->fn(tf, &msg);
|
||||||
|
|
||||||
if (res != TF_NEXT) {
|
if (res != TF_NEXT) {
|
||||||
// if it's TF_CLOSE, we assume user already cleaned up userdata
|
// type listeners don't have userdata.
|
||||||
// TF_RENEW doesn't make sense here because type listeners don't expire
|
// TF_RENEW doesn't make sense here because type listeners don't expire = same as TF_STAY
|
||||||
|
|
||||||
|
if (res == TF_CLOSE) {
|
||||||
|
cleanup_type_listener(tf, i, tlst);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -404,8 +414,16 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
|||||||
res = glst->fn(tf, &msg);
|
res = glst->fn(tf, &msg);
|
||||||
|
|
||||||
if (res != TF_NEXT) {
|
if (res != TF_NEXT) {
|
||||||
// if it's TF_CLOSE, we assume user already cleaned up userdata
|
// generic listeners don't have userdata.
|
||||||
// TF_RENEW doesn't make sense here because generic listeners don't expire
|
// TF_RENEW doesn't make sense here because generic listeners don't expire = same as TF_STAY
|
||||||
|
|
||||||
|
// note: It's not expected that user will have multiple generic listeners, or
|
||||||
|
// ever actually remove them. They're most useful as default callbacks if no other listener
|
||||||
|
// handled the message.
|
||||||
|
|
||||||
|
if (res == TF_CLOSE) {
|
||||||
|
cleanup_generic_listener(tf, i, glst);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* TinyFrame protocol library
|
* TinyFrame protocol library
|
||||||
*
|
*
|
||||||
* (c) Ondřej Hruška 2017, MIT License
|
* (c) Ondřej Hruška 2017, MIT License
|
||||||
* no liability/warranty, free for any use, must retain this notice & license
|
* no liability/warranty, free for any use, must retain this notice & license
|
||||||
*
|
*
|
||||||
* Upstream URL: https://github.com/MightyPork/TinyFrame
|
* Upstream URL: https://github.com/MightyPork/TinyFrame
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TF_VERSION "2.0.1"
|
#define TF_VERSION "2.0.2"
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
#include <stdint.h> // for uint8_t etc
|
#include <stdint.h> // for uint8_t etc
|
||||||
|
|||||||
Reference in New Issue
Block a user