]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Deferred call may need to be returned for future cleanups
authorMaria Matejka <mq@ucw.cz>
Sat, 23 Nov 2024 20:24:45 +0000 (21:24 +0100)
committerMaria Matejka <mq@ucw.cz>
Sun, 24 Nov 2024 21:49:35 +0000 (22:49 +0100)
lib/defer.h

index 895fcce240f3984ac540c7bc7d67b018203f2405..6fed60241ebf8cedd2c70118e555dc1a8c1fbada 100644 (file)
@@ -34,7 +34,9 @@ struct deferred {
 extern _Thread_local struct deferred local_deferred;
 void defer_init(linpool *lp);
 
-static inline void defer_call(struct deferred_call *call, size_t actual_size) {
+static inline struct deferred_call *
+defer_call(struct deferred_call *call, size_t actual_size)
+{
   /* Reallocate the call to the appropriate linpool */
   ASSERT_DIE(actual_size < 128);
   struct deferred_call *a = lp_alloc(local_deferred.lp, actual_size);
@@ -48,6 +50,8 @@ static inline void defer_call(struct deferred_call *call, size_t actual_size) {
   a->next = NULL;
   *local_deferred.last = a;
   local_deferred.last = &a->next;
+
+  return a;
 }
 
 #endif