summaryrefslogtreecommitdiff
path: root/lib/talloc
AgeCommit message (Collapse)AuthorFilesLines
2013-09-08talloc: Allow nested pools.Volker Lendecke3-24/+52
Signed-off-by: Volker Lendecke <vl@samba.org> Signed-off-by: Jeremy Allison <jra@samba.org>
2013-09-08talloc: Add a separate pool sizeVolker Lendecke1-12/+23
This is necessary to allow talloc pools to be objects on their own. It is an incompatible change in the sense that talloc_get_size(pool) now returns 0 instead of the pool size. When the talloc_pooled_object() call is added, this will start to make sense again. Maybe we should add a talloc_pool_size call? Or is that overkill? Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-09-08talloc: Put pool-specific data before the chunkVolker Lendecke1-79/+125
This is a preparation to make talloc pool real objects themselves. Signed-off-by: Volker Lendecke <vl@samba.org> Signed-off-by: Jeremy Allison <jra@samba.org>
2013-09-08talloc: Introduce __talloc_with_prefixVolker Lendecke1-10/+22
This will allow to exchange the extra talloc pool header with the talloc_chunk structure Signed-off-by: Volker Lendecke <vl@samba.org> Signed-off-by: Jeremy Allison <jra@samba.org>
2013-09-08talloc: Decouple the dual use of chunk->poolVolker Lendecke1-25/+23
If we want nested pools, we will have pools that are pool members. So we will have to have a separate "next object" pointer for pools. As we have struct talloc_pool_chunk now, this additional pointer does not affect normal talloc objects. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-08-28Fix valgrind errors with memmove and talloc pools.Jeremy Allison1-0/+21
bin/smbtorture //127.0.0.1 local.talloc now runs with no valgrind errors. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: "Stefan (metze) Metzmacher" <metze@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Wed Aug 28 02:44:17 CEST 2013 on sn-devel-104
2013-08-27Add simple limited pool tests to test_memlimit().Jeremy Allison1-0/+27
Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Remove talloc_memlimit_update(). No longer used.Jeremy Allison1-24/+0
Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Inside _talloc_realloc(), keep track of size changes over malloc/realloc/free.Jeremy Allison1-4/+15
Replace the last use of talloc_memlimit_update() with talloc_memlimit_grow()/ talloc_memlimit_shrink(). Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Don't call talloc_memlimit_update() inside _talloc_realloc() when we're just ↵Jeremy Allison1-15/+0
manipulating pool members. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Fix a conditional check. (size - tc->size > 0) is always true if size and ↵Jeremy Allison1-1/+1
tc->size are unsigned. Replace with (size > tc->size). Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27In _talloc_steal_internal(), correctly decrement the memory limit in the ↵Jeremy Allison1-12/+5
source, and increment in the destination. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Inside _talloc_free_internal(), always call talloc_memlimit_update_on_free() ↵Jeremy Allison1-23/+4
before we free the real memory. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Update memory limits when we call free() on a pool.Jeremy Allison1-0/+2
Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Change __talloc() to only call ↵Jeremy Allison1-12/+9
talloc_memlimit_check()/talloc_memlimit_grow() on actual malloc allocation. Don't check the memlimit if the allocation was successful from a pool. We already checked the memory limit when we created the pool. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Change _talloc_total_mem_internal() to ignore memory allocated from a pool ↵Jeremy Allison1-1/+8
when calculating limit size. We must only count normal tallocs, or a talloc pool itself. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Remove magic TC_HDR_SIZE handling inside talloc_memlimit_check().Jeremy Allison1-1/+1
Callers already account for TC_HDR_SIZE, do not add it twice. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-08-27Start to fix talloc memlimits with talloc pools.Jeremy Allison1-0/+72
Add the functions: talloc_memlimit_grow(), talloc_memlimit_shrink(), talloc_memlimit_update_on_free(). as replacements for talloc_memlimit_update(). The interface to talloc_memlimit_update() is very hard to understand and use. The above functions are (to me) much clearer. The goal of these changes is to only update the memlimits on malloc/free/realloc, not on every pool allocation. That way we only count pool creation as allocation from any imposed limits, not allocation from an already created pool. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
2013-05-28build: Remove autoconf build systemAndrew Bartlett2-52/+0
We are now confident that that waf build system meets enough of our needs that we will work to improve it, rather than maintain two build systems. Andrew Bartlett Reviewed-by: Jelmer Vernooij <jelmer@samba.org> Reviewed-by: David Disseldorp <ddiss@samba.org>
2013-05-20talloc: Fix a typoVolker Lendecke1-1/+1
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Kai Blin <kai@samba.org> Autobuild-User(master): Kai Blin <kai@samba.org> Autobuild-Date(master): Mon May 20 18:48:49 CEST 2013 on sn-devel-104
2013-05-14talloc: only provide the --enable-talloc-compat1 in standalone buildStefan Metzmacher1-4/+6
The compat library is already only built in standalone build, so we need the configure option also only in the standalone build. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
2013-04-18talloc: Simplify _talloc_free_poolmem a bitVolker Lendecke1-2/+14
Early returns are easier to understand than "else if" Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Thu Apr 18 22:50:42 CEST 2013 on sn-devel-104
2013-04-18talloc: Do an early returnVolker Lendecke1-3/+6
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2013-04-18talloc: Avoid some "else" by doing early returnsVolker Lendecke1-4/+8
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2013-04-18talloc: Fix nonblank line endingsVolker Lendecke1-34/+34
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2012-12-03lib/talloc: Move manpage to man/.Karolin Seeger2-13/+13
Trying to be more consistent. Karolin Reviewed-by: Andreas Schneider <asn@samba.org>
2012-11-29docs: man talloc: Add missing meta data.Karolin Seeger1-0/+12
This avoids warnings during the waf build and removes "FIXME" entries from the manpage. Karolin Reviewed-by: Andreas Schneider <asn@samba.org>
2012-10-05talloc: Convert error cecking macros into fnsSimo Sorce1-37/+74
This will avoid 'surprise returns' and makes the code cleare to readers. These macros were complex enough to warrant a full function anyway not just for readability but also for debuggability. Thanks David for pointing out this issue. Autobuild-User(master): Simo Sorce <idra@samba.org> Autobuild-Date(master): Fri Oct 5 23:24:17 CEST 2012 on sn-devel-104
2012-10-05Add tests for talloc_memlimitSimo Sorce1-0/+172
Autobuild-User(master): Simo Sorce <idra@samba.org> Autobuild-Date(master): Fri Oct 5 07:36:38 CEST 2012 on sn-devel-104
2012-10-05Add memory limiting capability to tallocSimo Sorce5-40/+327
By calling talloc_set_memlimit() we can now set a max memory limit for a whole talloc hierarchy. ANy attempt to allocate memory beyond the max allowed for the whole hierarchy wil cause an allocation failure. Stealing memory correctly accounts for used memory in the old and the new hierarchy but exceeding the memory limit in the new parent will not cause a failure.
2012-08-04doc: Remove build/ from doxygen config or it will not work in brew.Andreas Schneider1-4/+1
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Sat Aug 4 16:31:22 CEST 2012 on sn-devel-104
2012-07-18talloc: don't allow a talloc_pool inside a talloc_pool.Rusty Russell2-1/+9
We explicitly call free() on a pool which falls to zero, assuming it's not inside another pool (we crash). Check on creation and explicitly document this case. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc: use a struct for pool headers.Rusty Russell2-106/+90
This neatens the code a bit (we should do a similar thing for all the TALLOC_CHUNK macros). Two subtler changes: (1) As a result of the struct, we actually pack object_count into the talloc header on 32-bit platforms (since the header is 40 bytes, but needs to be 16-byte aligned). (2) I avoid VALGRIND_MAKE_MEM_UNDEFINED on memmove when we resize the only entry in a pool; that's done later anyway. With -O2 on my 11.04 Ubuntu 32-bit x86 laptop, the talloc_pool speed as measured by testsuite.c actually increases 10%. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-05talloc: remove unused variablesBjörn Jacke1-5/+0
found by the IRIX compiler Autobuild-User(master): Björn Jacke <bj@sernet.de> Autobuild-Date(master): Thu Jul 5 23:50:54 CEST 2012 on sn-devel-104
2012-05-30build: Remove unused release scripts for tallocAndrew Bartlett6-518/+0
These now use waf dist, and the script/librelease.sh script as a wrapper. The mksyms.sh call in the source3/Makefile uses the copy in source3/script Andrew Bartlett
2012-05-07talloc: Update doxygen config.Andreas Schneider1-119/+391
Autobuild-User: Andreas Schneider <asn@cryptomilk.org> Autobuild-Date: Mon May 7 21:13:15 CEST 2012 on sn-devel-104
2012-05-07doc: Remove latex to doxygen conversion leftovers in talloc.Pavel Březina2-8/+8
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-05-07doc: Fixes for the talloc best practices tutorial.Andreas Schneider1-10/+10
2012-05-07doc: Fixes for the talloc debugging tutorial.Andreas Schneider1-9/+10
2012-05-07doc: Fixes for the talloc pool tutorial.Andreas Schneider1-15/+16
2012-05-07doc: Fixes for the talloc destructor tutorial.Andreas Schneider1-4/+5
2012-05-07doc: Fixes for the talloc dynamic type system tutorial.Andreas Schneider1-14/+15
2012-05-07doc: Fixes for the talloc stealing tutorial.Andreas Schneider1-9/+24
2012-05-07doc: Fixes for the talloc context tutorial.Andreas Schneider1-25/+27
2012-05-07doc: Add talloc tutorial.Pavel Březina13-1/+873
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-24talloc: Fix copy&paste errorsVolker Lendecke1-2/+2
2012-04-24Talloc doc: talloc_strdup_append does not return duplicated stringPavel Březina1-4/+4
2012-04-24Talloc doc: when s == NULL in _append functionsPavel Březina1-0/+12
2012-04-18Talloc doc: Fix a cut&paste errorVolker Lendecke1-4/+1
Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Wed Apr 18 11:59:49 CEST 2012 on sn-devel-104
2012-04-18Talloc doc: talloc_pool() when not enough memory in the poolPavel Březina1-0/+4