[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-users] [PATCH] Avoid dangling else problem
From: |
Roy Lee |
Subject: |
[lwip-users] [PATCH] Avoid dangling else problem |
Date: |
Thu, 9 Apr 2009 18:35:38 +0800 |
---
src/include/lwip/tcp.h | 63 ++++++++++++++++++++++++++++++++---------------
1 files changed, 43 insertions(+), 20 deletions(-)
diff --git a/src/include/lwip/tcp.h b/src/include/lwip/tcp.h
index e9e82fb..8f6c2b9 100644
--- a/src/include/lwip/tcp.h
+++ b/src/include/lwip/tcp.h
@@ -467,26 +467,49 @@ err_t lwip_tcp_event(void *arg, struct tcp_pcb *pcb,
#define TCP_EVENT_ERR(errf,arg,err) lwip_tcp_event((arg), NULL, \
LWIP_EVENT_ERR, NULL, 0, (err))
#else /* LWIP_EVENT_API */
-#define TCP_EVENT_ACCEPT(pcb,err,ret) \
- if((pcb)->accept != NULL) \
- (ret = (pcb)->accept((pcb)->callback_arg,(pcb),(err)))
-#define TCP_EVENT_SENT(pcb,space,ret) \
- if((pcb)->sent != NULL) \
- (ret = (pcb)->sent((pcb)->callback_arg,(pcb),(space)))
-#define TCP_EVENT_RECV(pcb,p,err,ret) \
- if((pcb)->recv != NULL) \
- { ret =
(pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); } else { \
- ret = ERR_OK; \
- if (p) pbuf_free(p); }
-#define TCP_EVENT_CONNECTED(pcb,err,ret) \
- if((pcb)->connected != NULL) \
- (ret =
(pcb)->connected((pcb)->callback_arg,(pcb),(err)))
-#define TCP_EVENT_POLL(pcb,ret) \
- if((pcb)->poll != NULL) \
- (ret = (pcb)->poll((pcb)->callback_arg,(pcb)))
-#define TCP_EVENT_ERR(errf,arg,err) \
- if((errf) != NULL) \
- (errf)((arg),(err))
+
+#define TCP_EVENT_ACCEPT(pcb,err,ret) \
+ do { \
+ if((pcb)->accept) \
+ ret = (pcb)->accept((pcb)->callback_arg,(pcb),(err)); \
+ } while (0);
+
+#define TCP_EVENT_SENT(pcb,space,ret) \
+ do { \
+ if((pcb)->sent) \
+ ret = (pcb)->sent((pcb)->callback_arg,(pcb),(space)); \
+ } while (0);
+
+#define TCP_EVENT_RECV(pcb,p,err,ret) \
+ do { \
+ if((pcb)->recv) { \
+ ret = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); \
+ } \
+ else { \
+ ret = ERR_OK; \
+ if (p) \
+ pbuf_free(p); \
+ } \
+ } while (0);
+
+#define TCP_EVENT_CONNECTED(pcb,err,ret) \
+ do { \
+ if((pcb)->connected) \
+ ret = (pcb)->connected((pcb)->callback_arg,(pcb),(err)); \
+ } while (0);
+
+#define TCP_EVENT_POLL(pcb,ret) \
+ do { \
+ if((pcb)->poll) \
+ ret = (pcb)->poll((pcb)->callback_arg,(pcb)); \
+ } while (0);
+
+#define TCP_EVENT_ERR(errf,arg,err) \
+ do { \
+ if((errf)) \
+ (errf)((arg),(err)); \
+ } while (0);
+
#endif /* LWIP_EVENT_API */
/* This structure represents a TCP segment on the unsent and unacked queues */
--
1.6.2
- [lwip-users] [PATCH] Avoid dangling else problem,
Roy Lee <=