X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftalloc%2Ftalloc.c;h=a5cd447e908b79cafc6709d860eac959715a9150;hp=1424748eef7fa9a5b49caabd9fb095914b51cd50;hb=059678ec4216112f96d8ad992ec7c0b8a6e3b80b;hpb=f933b8c3246e3fbfe362cb1db73a4ef774725709 diff --git a/ccan/talloc/talloc.c b/ccan/talloc/talloc.c index 1424748e..a5cd447e 100644 --- a/ccan/talloc/talloc.c +++ b/ccan/talloc/talloc.c @@ -469,7 +469,7 @@ static void *__talloc_steal(const void *new_ctx, const void *ptr) /* internal talloc_free call */ -static inline int _talloc_free(void *ptr) +static inline int _talloc_free(const void *ptr) { struct talloc_chunk *tc; void *oldparent = NULL; @@ -508,7 +508,7 @@ static inline int _talloc_free(void *ptr) return -1; } tc->destructor = (talloc_destructor_t)-1; - if (d(ptr) == -1) { + if (d(discard_const_p(void, ptr)) == -1) { tc->destructor = d; return -1; } @@ -819,12 +819,12 @@ void *talloc_named_const(const void *context, size_t size, const char *name) will not be freed if the ref_count is > 1 or the destructor (if any) returns non-zero */ -int talloc_free(void *ptr) +int talloc_free(const void *ptr) { int saved_errno = errno, ret; lock(ptr); - ret = _talloc_free(ptr); + ret = _talloc_free(discard_const_p(void, ptr)); unlock(); if (ret == 0) errno = saved_errno;