]> git.ozlabs.org Git - ccan/blobdiff - ccan/talloc/talloc.c
Use -O not -O3: reduces ccan/tdb test time from 24 to 18 seconds.
[ccan] / ccan / talloc / talloc.c
index 1424748eef7fa9a5b49caabd9fb095914b51cd50..58921e17d21acfdb8e2a895c3b803059f338bd9e 100644 (file)
@@ -43,7 +43,7 @@
 #define ALWAYS_REALLOC 0
 
 
-#define MAX_TALLOC_SIZE 0x10000000
+#define MAX_TALLOC_SIZE 0x7FFFFFFF
 #define TALLOC_MAGIC 0xe814ec70
 #define TALLOC_FLAG_FREE 0x01
 #define TALLOC_FLAG_LOOP 0x02
@@ -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;