From 5f46605aeecab35729cf843493e6fa3549e16d9e Mon Sep 17 00:00:00 2001
From: Harald Welte <laforge@gnumonks.org>
Date: Fri, 17 May 2019 21:06:51 +0200
Subject: pseudotalloc: turn talloc_steal() into #define

Any non-anciant version of talloc implements talloc_steal()
as a #define using the _talloc_steal_loc() symbol.  Let's be
more compatible.

This fix is relevant to using osmo_fsm inside the osmo-ccid-firmware
builds for Cortex-M4.  In this situation, for some strange reason,
libosmcoore is compiled using src/pseudotalloc/talloc.h, but later then
linked against the real libtalloc.

Change-Id: I1ee7f5e9b1002cff37bb8341ad870e1da5f1f9ff
---
 src/pseudotalloc/pseudotalloc.c | 2 +-
 src/pseudotalloc/talloc.h       | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

(limited to 'src')

diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c
index 89e62696..c368296c 100644
--- a/src/pseudotalloc/pseudotalloc.c
+++ b/src/pseudotalloc/pseudotalloc.c
@@ -97,7 +97,7 @@ char *talloc_asprintf(const void *ctx, const char *fmt, ...)
 	return buf;
 }
 
-void *talloc_steal(const void *new_ctx, const void *obj)
+void *_talloc_steal_loc(const void *new_ctx, const void *obj, const char *location)
 {
 	/* as we don't do hierarchical allocations, this is simply a NOP */
 	return (void *)obj;
diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h
index 34088af0..fe2efbcf 100644
--- a/src/pseudotalloc/talloc.h
+++ b/src/pseudotalloc/talloc.h
@@ -60,5 +60,6 @@ void *_talloc_zero_array(const void *ctx,
 			 const char *name);
 char *talloc_asprintf(const void *ctx, const char *fmt, ...);
 
-void *talloc_steal(const void *new_ctx, const void *obj);
+#define talloc_steal(ctx, ptr) _talloc_steal_loc((ctx), (ptr), __location__)
+void *_talloc_steal_loc(const void *new_ctx, const void *obj, const char *location);
 char *talloc_vasprintf(const void *t, const char *fmt, va_list ap);
-- 
cgit v1.2.3