Commit Graph

43 Commits

Author SHA1 Message Date
Cedric BAIL 4a853cde86 eina: be able to track and display our memory over head when using malloc.
NOTE: it is worth enabling it and see EINA_LOG_INFO displaying how much memory
we are wasting. Should help tune our memory allocator usage.


SVN revision: 67296
2012-01-18 17:47:05 +00:00
Cedric BAIL bd1337f4cd eina: fix api to actually work as expected.
SVN revision: 58871
2011-04-24 16:49:48 +00:00
Cedric BAIL f7d9487aff eina: starting to use eina_lock.
SVN revision: 58869
2011-04-24 15:54:09 +00:00
Cedric BAIL 90801855db eina: prevent NULL offsetting.
SVN revision: 58560
2011-04-11 17:28:16 +00:00
Cedric BAIL 29639eea35 eina: add eina_mempool_repack.
WARNING: HIGHLY UNTESTED PIECE OF CODE ! USE IT AT YOUR OWN RISK !


SVN revision: 58554
2011-04-11 14:07:42 +00:00
Carsten Haitzler a457791496 remove.
SVN revision: 57387
2011-02-27 14:40:54 +00:00
Carsten Haitzler 949e428ca1 make label not have nothing after it. fix err when valgrind and
threads disabled.



SVN revision: 57373
2011-02-27 11:27:02 +00:00
Vincent Torri b0975aa65a Eina chained mempool:
Fix a compilation failure when --disable-posix-threads
--disable-valgrind are passed to configure

When --disable-posix-threads --disable-valgrind are passed
to configure, a label is at the end of a block. Just add a
return to fix that problem.



SVN revision: 57290
2011-02-24 07:05:50 +00:00
Cedric BAIL 3a058ac014 * eina: revert and fix a typo that make stuff even faster.
SVN revision: 56712
2011-02-04 14:03:18 +00:00
Tom Hacohen f2afb18e00 Eina: reverted commit 56637 (scalability and whatever improvements) it had HUGE leaks.
SVN revision: 56695
2011-02-03 20:04:03 +00:00
Cedric BAIL b409910a2a * eina: improve speed and scalability a lot.
SVN revision: 56637
2011-02-01 18:10:03 +00:00
Tiago Rezende Campos Falcao fd1c8603ee Removing dead assignment.
Reported in:
http://people.profusion.mobi/~lfelipe/static_analysis/efl/efl-53990/eina/2010-10-29-1/report-w3Z1oM.html#EndPath

SVN revision: 53999
2010-10-29 17:19:19 +00:00
Carsten Haitzler 788a3357e9 dont free null ptrs eh?
SVN revision: 53944
2010-10-28 03:46:52 +00:00
Gustavo Sverzut Barbieri a528a88fe0 fix amalgamation build
SVN revision: 53821
2010-10-23 20:57:08 +00:00
Rafael Fonseca 9733a55c22 Mark memory as accessable before popping it from stack.
When we push a memory to the trash stack we mark it as unaccessable. So we
should mark it as accessible before returning it to the user.



SVN revision: 53427
2010-10-14 19:24:00 +00:00
Rafael Fonseca 4bd0432caf Just mark memory as freed after actually freeing it.
Otherwise valgrind would complain about invalid memory access.



SVN revision: 53426
2010-10-14 19:19:13 +00:00
Rafael Fonseca 6485492cbe Make valgrind know about eina mempools.
Because mempools generally allocate a big memory area and distribute chunks of
that area to the users, valgrind can not know about logical invalid access. By
using some valgrind macros we can tell valgrind about mempools and which area
can be accessed or not.

To start with I have just done valgrind integration on chained mempool but soon
it will be done for one_big too.

The code below is an example on which valgrind wouldn't complain without this
patch:

@code
#include <Eina.h>

int
main(int argc, char *argv[])
{
    int i, *pool[4];
    Eina_Mempool *mp;

    eina_init();
    mp = eina_mempool_add("chained_mempool", "test", NULL, sizeof(int), 4);

    for (i = 0; i < 4; i++) {
        pool[i] = eina_mempool_malloc(mp, sizeof(int));
        *pool[i] = i;
    }

    printf("Valid mp pointer: pool[0] = %d\n", *pool[0]);
    eina_mempool_free(mp, pool[0]);
    printf("Freed mp pointer: pool[0] = %d\n", *pool[0]);

    for (i = 1; i < 4; i++)
        eina_mempool_free(mp, pool[i]);

    eina_mempool_del(mp);
    eina_shutdown();

    return 0;
}
@endcode



SVN revision: 53405
2010-10-14 15:18:15 +00:00
Cedric BAIL 39a6e2df5a * eina: use pthread_equal.
SVN revision: 53400
2010-10-14 14:17:48 +00:00
Cedric BAIL 7f9845c66f * eina: make Vincent happy.
SVN revision: 53362
2010-10-13 16:30:22 +00:00
Cedric BAIL f9b8578ea6 * eina: add assert to ease tracking down efl misuse with threads.
SVN revision: 53360
2010-10-13 15:35:56 +00:00
Cedric BAIL a44992380f * eina: easy speed improvement by reducing operation of mempool.
SVN revision: 53349
2010-10-13 12:12:45 +00:00
Cedric BAIL 0d02671e99 * eina: improve chained mempool speed.
By removing pthread lock when thread safety is not required.
	By not walking over the buffer for nothing.


SVN revision: 53310
2010-10-12 16:53:30 +00:00
Lucas De Marchi 0a4617ae38 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Cedric BAIL 85be5e4201 * eina: try to fix memory align on sparc.
SVN revision: 50680
2010-07-30 08:26:34 +00:00
Carsten Haitzler ddc6ba2c2a uncrustify eina.
SVN revision: 50573
2010-07-28 02:37:05 +00:00
Cedric BAIL 07ad9d5139 * eina: add a mempool that just do one big malloc.
SVN revision: 50510
2010-07-26 15:52:43 +00:00
Vincent Torri c97a897584 use Win32 native mutex on Windows. To use it, pass the following option
to configure:

--enable-win32-threads

By default, pthreads are used


SVN revision: 50220
2010-07-13 13:51:00 +00:00
Sebastian Dransfeld f70c4ebe1f And only log when debug
SVN revision: 46102
2010-02-11 21:56:31 +00:00
Sebastian Dransfeld b2fbe0f2b2 Use eina_log
SVN revision: 46094
2010-02-11 21:20:52 +00:00
Vincent Torri c1f402b6fc * allow compilation with vc++
* fix a small warning

SVN revision: 42513
2009-09-16 13:38:21 +00:00
Gustavo Sverzut Barbieri 9b3e482ad2 --enable-amalgamation
This will concatenate all source files in the hope compiler will do a
better job. On my test with static/built in mempools it saves me 4k, I
guess some intra module calls can be saved.



SVN revision: 42315
2009-09-07 05:54:42 +00:00
Cedric BAIL a477424685 * eina: Expose an helper for memory pool as Eina_Trash data type.
SVN revision: 41350
2009-07-15 13:13:52 +00:00
Cedric BAIL 55cfc46ee2 * eina/m4/efl_pthread.m4,
* eina/src/modules/mp/chained_pool/Makefile.am,
	* eina/src/modules/mp/chained_pool/eina_chained_mempool.c: Now chained mempool are thread safe.



SVN revision: 39058
2009-02-17 14:18:14 +00:00
Cedric BAIL 68d377afe6 Rename EINA_INLIST_ITER_NEXT/EINA_INLIST_ITER_LAST to EINA_INLIST_FOREACH/
EINA_INLIST_REVERSE_FOREACH so it best match is behaviour. Asked by Gustavo.



SVN revision: 36928
2008-10-21 12:19:57 +00:00
Cedric BAIL 439401682d Reduce code size, and improve sort speed.
SVN revision: 36382
2008-10-01 16:30:30 +00:00
Cedric BAIL 3315d29c7f Fix chained mempool allocator.
SVN revision: 36355
2008-09-30 12:55:33 +00:00
Jorge Luis Zapata Muga c9f08f6124 New module API. Port this API to the mempool subsystem and the tests.
Now the modules can define a default function that will be called when the module is loaded and unloaded.

SVN revision: 36207
2008-09-24 12:55:31 +00:00
Vincent Torri 4313d2b084 * fix list doc
* minor other doc fixes
 * link the mempool modules statically to libeina when requested
 * don't compile static lib of mempool when they are built as shared lib


SVN revision: 36178
2008-09-23 05:17:49 +00:00
Cedric BAIL 8bda22fced Add some type checking to Inlined List.
SVN revision: 36084
2008-09-18 14:22:48 +00:00
Cedric BAIL 730049220e Fix typo and initialization.
SVN revision: 36049
2008-09-17 15:18:35 +00:00
Cedric BAIL da8c3be66f Add a proposal for a module/plugins API that should match every requirement I
received. It's a little huge right now, but work quite nicely.

It support "static" module, version, recursive lookup and should be able to
replace the module/plugins support in evas and ecore.


SVN revision: 35534
2008-08-18 08:18:16 +00:00
Cedric BAIL ddaa7d4d8f License changes (BSD -> LGPL)
SVN revision: 35360
2008-08-06 18:15:24 +00:00
Cedric BAIL a309e49392 Cleanup the mempool stuff.
SVN revision: 35277
2008-07-31 17:00:56 +00:00