summaryrefslogtreecommitdiffstats
path: root/lib/talloc
Commit message (Collapse)AuthorAgeFilesLines
* pytalloc: Build for Python 3/extrapythonPetr Viktorin2015-03-113-16/+44
| | | | | | | This enables building, installing & testing two versions for pytalloc, for two versions of Python, at the same time. Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* pytalloc: Port to Python 3Petr Viktorin2015-03-114-29/+57
| | | | | | | | | | | | | | | | | | | | | | - Use native string for repr - Use rich comparison Removes the deprecated tp_compare in favor of tp_richcompare. Disparate types cannot be compared (except for == and !=), and True or False objects are returned explicitly. - Use Py_TYPE instead of ob_type This changed to conform to C aliasing rules, see http://legacy.python.org/dev/peps/pep-3123/ - Don't provide CObject creation function A PyCapsule based replacement would be possible, but might not be necessary considering the function is not used much. - Use new-style module initialization Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* pytalloc: Add a Python 3 compatibility headerPetr Viktorin2015-03-111-0/+126
| | | | Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* talloc build: Use SAMBA_CHECK_PYTHON for finding PythonPetr Viktorin2015-03-111-3/+1
| | | | | | Previously the code repeated most of SAMBA_CHECK_PYTHON explicitly. Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* buildtools: Use 'pyfeature' instead of pyembed and pyext argumentsPetr Viktorin2015-03-111-1/+1
| | | | | | | This will allow defining other Python-related features, which will be passed through the stack the same way as the existing two. Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* pytalloc: Add testsPetr Viktorin2015-03-113-1/+247
| | | | | | | | | Add tests for pytalloc. Since talloc objects can't be created from Python, a C extension with helpers is added. Signed-off-by: Petr Viktorin <pviktori@redhat.com>
* pytalloc: Fix comparison of disparate typesPetr Viktorin2015-03-111-1/+1
| | | | | | | | When fed Python objects of different types, pytalloc_default_cmp compared pointers to PyType objects that weren't part of an array, resulting in undefined behavior. This makes things a bit better (though it still casts ptrdiff_t to int).
* ,disable-slow-testPetr Viktorin2015-03-111-2/+2
|
* talloc: version 2.1.2Stefan Metzmacher2015-03-093-1/+71
| | | | | | | | | | Changes: - Allow destructors to reparent the object - Allow destructors to remove itself - Build improvements Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Günther Deschner <gd@samba.org>
* talloc: fix _talloc_total_limit_size prototypeStefan Metzmacher2015-03-091-1/+1
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
* lib: talloc: Test suite for the new destructor reparent logic.Jeremy Allison2015-03-081-0/+82
| | | | | | | | | Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ira Cooper <ira@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Sun Mar 8 20:52:43 CET 2015 on sn-devel-104
* lib: talloc: Allow destructors to reparent the object they're called on.Jeremy Allison2015-03-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | If a destructor returns failure (-1) when freeing a child, talloc must then reparent the child. Firstly it tries the owner of any reference, next the parent of the current object calling _talloc_free_children_internal(), and finally the null context in the last resort. If a destructor reparented its own object, which can be a very desirable thing to do (a destructor can make a decision it isn't time to die yet, and as the parent may be going away it might want to move itself to longer-term storage) then this new parent gets overwritten by the existing reparenting logic. This patch checks when freeing a child if it already reparented itself, and if it did doesn't then overwrite the new parent. Makes destructors more flexible. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ira Cooper <ira@samba.org>
* lib: talloc: Fix bug when calling a destructor.Jeremy Allison2015-03-081-1/+7
| | | | | | | | | | | If the destructor itself calls talloc_set_destructor() and returns -1, the new destructor set is overwritten by talloc. Dectect that and leave the new destructor in place. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ira Cooper <ira@samba.org>
* talloc:build: improve detection of srcdirMichael Adam2014-06-201-1/+1
| | | | | Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
* talloc: version 2.1.1Stefan Metzmacher2014-05-163-1/+71
| | | | | | | | | | | | | | Changes: - documentation updates - a fix for pytalloc-util.pc - performance improvements here and there - fixed compiler warnings Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Fri May 16 19:51:26 CEST 2014 on sn-devel-104
* talloc/tests: avoid some unused variable warningsStefan Metzmacher2014-05-161-0/+13
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: fix compiler warningStefan Metzmacher2014-05-161-1/+4
| | | | | | | | | | | | | This avoids the following warning when using: CFLAGS="-O3 -g -fstrict-overflow -Wstrict-overflow=5" ../talloc.c: In Funktion »talloc_is_parent«: ../talloc.c:2658:21: Warnung: assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C1 +- C2 [-Wstrict-overflow] Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: check for TALLOC_GET_TYPE_ABORT_NOOPStefan Metzmacher2014-05-161-0/+4
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: avoid a function call in TALLOC_FREE() if possible.Stefan Metzmacher2014-05-161-1/+1
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: inline talloc_get_name()Stefan Metzmacher2014-05-161-6/+10
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: inline more static functionsStefan Metzmacher2014-05-161-19/+26
| | | | | | | We need the code to be as fast as possible. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: Tune talloc_vasprintfVolker Lendecke2014-05-151-5/+9
| | | | | | | | | | | | vsnprintf is significantly more expensive than memcpy. For the common case where the string we print is less than a kilobyte, avoid the second vsnprintf. 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 May 15 12:49:14 CEST 2014 on sn-devel-104
* talloc: Update flags in pytalloc-util pkgconfig fileLukas Slebodnik2014-04-041-2/+2
| | | | | | | | | | | | | | After exapnding, @LIB_RPATH@ will be -Wl,-rpatch,/usr/local/lib if rpath is used on install. But "-Wl," will be passed to linker and should not be among CFLAGS. Other pkgconfig files have @LIB_RPATH@ in the right place. @see commit 735c1cd2da15167748e92ba6de48fdb5169db587 Signed-off-by: Lukas Slebodnik <lslebodn@redhat.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Fri Apr 4 23:50:25 CEST 2014 on sn-devel-104
* Add a basic guide on pytalloc.Jelmer Vernooij2013-11-282-0/+156
| | | | | | | | Signed-off-by: Jelmer Vernooij <jelmer@samba.org> Reviewed-By: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Jelmer Vernooij <jelmer@samba.org> Autobuild-Date(master): Thu Nov 28 02:24:45 CET 2013 on sn-devel-104
* talloc: Add a warning to talloc_reference() documentation.Andreas Schneider2013-10-141-0/+8
| | | | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Kai Blin <kai@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Mon Oct 14 23:05:54 CEST 2013 on sn-devel-104
* talloc: Test the pooled objectVolker Lendecke2013-09-081-0/+36
| | | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* talloc: Add talloc_pooled_objectVolker Lendecke2013-09-085-1/+174
| | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* talloc: Allow nested pools.Volker Lendecke2013-09-083-24/+52
| | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Signed-off-by: Jeremy Allison <jra@samba.org>
* talloc: Add a separate pool sizeVolker Lendecke2013-09-081-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>
* talloc: Put pool-specific data before the chunkVolker Lendecke2013-09-081-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>
* talloc: Introduce __talloc_with_prefixVolker Lendecke2013-09-081-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>
* talloc: Decouple the dual use of chunk->poolVolker Lendecke2013-09-081-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>
* Fix valgrind errors with memmove and talloc pools.Jeremy Allison2013-08-281-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
* Add simple limited pool tests to test_memlimit().Jeremy Allison2013-08-271-0/+27
| | | | | Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Remove talloc_memlimit_update(). No longer used.Jeremy Allison2013-08-271-24/+0
| | | | | Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Inside _talloc_realloc(), keep track of size changes over malloc/realloc/free.Jeremy Allison2013-08-271-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>
* Don't call talloc_memlimit_update() inside _talloc_realloc() when we're just ↵Jeremy Allison2013-08-271-15/+0
| | | | | | | manipulating pool members. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Fix a conditional check. (size - tc->size > 0) is always true if size and ↵Jeremy Allison2013-08-271-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>
* In _talloc_steal_internal(), correctly decrement the memory limit in the ↵Jeremy Allison2013-08-271-12/+5
| | | | | | | source, and increment in the destination. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Inside _talloc_free_internal(), always call talloc_memlimit_update_on_free() ↵Jeremy Allison2013-08-271-23/+4
| | | | | | | before we free the real memory. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Update memory limits when we call free() on a pool.Jeremy Allison2013-08-271-0/+2
| | | | | Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Simo Sorce <idra@samba.org>
* Change __talloc() to only call ↵Jeremy Allison2013-08-271-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>
* Change _talloc_total_mem_internal() to ignore memory allocated from a pool ↵Jeremy Allison2013-08-271-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>
* Remove magic TC_HDR_SIZE handling inside talloc_memlimit_check().Jeremy Allison2013-08-271-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>
* Start to fix talloc memlimits with talloc pools.Jeremy Allison2013-08-271-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>
* build: Remove autoconf build systemAndrew Bartlett2013-05-282-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>
* talloc: Fix a typoVolker Lendecke2013-05-201-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
* talloc: only provide the --enable-talloc-compat1 in standalone buildStefan Metzmacher2013-05-141-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>
* talloc: Simplify _talloc_free_poolmem a bitVolker Lendecke2013-04-181-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
* talloc: Do an early returnVolker Lendecke2013-04-181-3/+6
| | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>