summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/talloc.h1
-rw-r--r--source3/lib/talloc.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/source3/include/talloc.h b/source3/include/talloc.h
index a4f19d3587..738506e323 100644
--- a/source3/include/talloc.h
+++ b/source3/include/talloc.h
@@ -122,6 +122,7 @@ void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned count, const
void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size, unsigned count, const char *name);
void *talloc_realloc_fn(const void *context, void *ptr, size_t size);
void *talloc_autofree_context(void);
+size_t talloc_get_size(const void *ctx);
#endif
diff --git a/source3/lib/talloc.c b/source3/lib/talloc.c
index da3a2300b0..4aeac5fef2 100644
--- a/source3/lib/talloc.c
+++ b/source3/lib/talloc.c
@@ -1081,4 +1081,13 @@ void *talloc_autofree_context(void)
return cleanup_context;
}
+size_t talloc_get_size(const void *context) {
+ struct talloc_chunk *tc;
+
+ if (context == NULL)
+ return 0;
+ tc = talloc_chunk_from_ptr(context);
+
+ return tc->size;
+}