From 76447a740a6989db08dcd0fcbd066b193a875177 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Tue, 20 Feb 2018 06:25:02 -0800 Subject: Adj Delegates; don't store raw pointers ... you'd think I'd have leanred by now... Change-Id: I65c54feb2ec016baa07ed96c81ab8f60277c3418 Signed-off-by: Neale Ranns --- src/vnet/adj/adj_bfd.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'src/vnet/adj/adj_bfd.c') diff --git a/src/vnet/adj/adj_bfd.c b/src/vnet/adj/adj_bfd.c index a4e7e277298..de7abfe4470 100644 --- a/src/vnet/adj/adj_bfd.c +++ b/src/vnet/adj/adj_bfd.c @@ -34,11 +34,6 @@ typedef enum adj_bfd_state_t_ */ typedef struct adj_bfd_delegate_t_ { - /** - * Base class,linkage to the adjacency - */ - adj_delegate_t abd_link; - /** * BFD session state */ @@ -58,25 +53,21 @@ static adj_bfd_delegate_t *abd_pool; static inline adj_bfd_delegate_t* adj_bfd_from_base (adj_delegate_t *ad) { - if (NULL == ad) + if (NULL != ad) { - return (NULL); + return (pool_elt_at_index(abd_pool, ad->ad_index)); } - return ((adj_bfd_delegate_t*)((char*)ad - - STRUCT_OFFSET_OF(adj_bfd_delegate_t, - abd_link))); + return (NULL); } static inline const adj_bfd_delegate_t* adj_bfd_from_const_base (const adj_delegate_t *ad) { - if (NULL == ad) + if (NULL != ad) { - return (NULL); + return (pool_elt_at_index(abd_pool, ad->ad_index)); } - return ((adj_bfd_delegate_t*)((char*)ad - - STRUCT_OFFSET_OF(adj_bfd_delegate_t, - abd_link))); + return (NULL); } static adj_bfd_state_t @@ -183,7 +174,7 @@ adj_bfd_notify (bfd_listen_event_e event, abd->abd_state = ADJ_BFD_STATE_UP; abd->abd_index = session->bs_idx; - adj_delegate_add(adj_get(ai), ADJ_DELEGATE_BFD, &abd->abd_link); + adj_delegate_add(adj_get(ai), ADJ_DELEGATE_BFD, abd - abd_pool); } break; -- cgit 1.2.3-korg