Commit Graph

54 Commits

Author SHA1 Message Date
Cedric BAIL d7800c23e3 eina: alloc ABI2 to reduce risk for futur ABI change.
SVN revision: 58582
2011-04-12 08:52:59 +00:00
Cedric BAIL 6ffb3b8d9f eina: restore ABI compatibility.
NOTE: if you did update the EFL during the last 3 hours, you will need to 
      recompile them all at once.


SVN revision: 58561
2011-04-11 17:45:01 +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 046360b50b more doxy -> .h
SVN revision: 58436
2011-04-07 12:45:51 +00:00
Mike Blumenkrantz 1147f3a5ca fix null deref again, this time with the power of spankies
SVN revision: 56105
2011-01-14 08:04:23 +00:00
Mike Blumenkrantz 01f1362c4e and also avoid leak while avoiding
SVN revision: 56088
2011-01-14 03:21:50 +00:00
Mike Blumenkrantz 3685b112ee avoid possible null function pointer
SVN revision: 56087
2011-01-14 03:19:17 +00:00
Carsten Haitzler ed78d8a36b mempool -> init the mempool with calloc. we cannot know for sure the
mempool backend inits all members, so make sure they are set to 0. not
a cost worth quibbling over. how many mempools do you really create
during the life of an app?



SVN revision: 51548
2010-08-22 22:35:24 +00:00
Cedric BAIL 476f09d29b * eina: add some doc for one big mempool.
SVN revision: 50834
2010-08-05 12:52:30 +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 762313eff2 declare buddy init/shutdown functions it this
mempool is statically linked


SVN revision: 47484
2010-03-26 07:47:11 +00:00
Christopher Michael 140de33a79 Fix some doxy typos.
SVN revision: 46450
2010-02-24 23:58:27 +00:00
Vincent Torri 2e004582d7 add mempool description in the doc
SVN revision: 46307
2010-02-19 13:42:34 +00:00
Vincent Torri f8e1057fc0 warning--
SVN revision: 46078
2010-02-11 15:22:41 +00:00
Carsten Haitzler 735ad48c39 eina - does modules like the rest of efl, so it's able to be installed with
multiple versions at the same time. eventually will neeed to also include
major number in release name too.



SVN revision: 45594
2010-01-26 15:54:28 +00:00
Sebastian Dransfeld 0ba3822213 Add patch from bug #479
Eina installs its modules in /usr/lib/eina/mp/<module>.so, which makes it impossible to install two different versions of eina at the same time. Please consider using something to make this path specific to a particular release of eina, just as you do for the include files.

SVN revision: 45562
2010-01-25 19:07:52 +00:00
Jorge Luis Zapata Muga f3fb3dea17 + [Eina] API change. eina_module_list_flush() -> eina_module_list_free()
as we are on the modules context not the array.
  All the referenced projects are changed too. Remember that the list_free()
  already calls the unload() on each module so no need to call list_unload()



SVN revision: 44978
2010-01-08 12:22:23 +00:00
Jorge Luis Zapata Muga 6183c3716e + Add the efl-research buddy allocator here
SVN revision: 44976
2010-01-08 12:10:14 +00:00
Vincent Torri 09d1853ea0 * finish benchmark tutorial
* move internal _init and _shutdown functions in the Global
   part of the code, as it is where they belong
 * fix minor documentation stuff


SVN revision: 44730
2009-12-27 08:45:30 +00:00
Gustavo Sverzut Barbieri b84e3424fe use quotes to include config.h
SVN revision: 42314
2009-09-07 04:32:49 +00:00
Gustavo Sverzut Barbieri 8318f4c1f2 allow amalgamation of files, at least symbols don't clash anymore.
more related to amalgamation later.



SVN revision: 42312
2009-09-07 04:23:05 +00:00
Gustavo Sverzut Barbieri a4bd77905d malloc--: error and magic can take statically defined strings so no
need to strdup them.



SVN revision: 42311
2009-09-07 03:32:22 +00:00
Gustavo Sverzut Barbieri e4af7c100c EINA API BREAK: no more individual modules init/shutdown.
Being able to indivually initialize individual modules was initially
"good", but at end it's putting complexities on users that would try
to "optimize" by doing just what they used, but in the end most people
would get them wrong, users would have to do lots of code and etc. At
the end it does not worth.

Most module init just register handful errors and log domains, so are
cheap. The exception is mempool users, that would dlopen() stuff, but
people that are concerned (embedded) can just compile those statically
in eina.

Since at the end any real application would use most of modules, we
actually end saving lots of function calls that would do nothing other
than increment a global counter.

I also did the init/shutdown use an array, making it easier to
maintain. The inital dependencies were analysed by a script I wrote, I
hope it's all right.

Please fix any breakages you find!



SVN revision: 42300
2009-09-06 22:21:56 +00:00
Gustavo Sverzut Barbieri dac152772f loggify mempool.
SVN revision: 42218
2009-09-04 01:13:49 +00:00
Gustavo Sverzut Barbieri 07d2bde900 eina_safety_checks_init()
All these individual init functions are getting messy, some modules
lack them and it's easy to get inconsistent. Safety check needs error
and log, but these need safety checks as well, some modules (lalloc,
rbtree and others) use safety checks but provide no _init().

I want to know if we really gain something to init individual
modules. It should not be that expensive as init should not allocate
heavy resources and the recommendation is to call eina_init() so most
users will do that anyway.

If people agree I'll unmark all *_init() as EAPI and make them private
to eina lib.



SVN revision: 42214
2009-09-04 00:53:19 +00:00
Vincent Torri 72b87160a2 * add eina_config.h in all source files. Fix linking with Visual Studio
* move eina_private.h and eina_safety_checks.h just after eina_config.h


SVN revision: 42077
2009-08-28 12:03:34 +00:00
Gustavo Sverzut Barbieri 70a599936d oops, consider fixed_bitmap if it was built statically.
SVN revision: 41621
2009-08-06 18:08:14 +00:00
Cedric BAIL b02de756a6 * eina: Rename eina_module_list_delete to eina_module_list_flush.
SVN revision: 41385
2009-07-17 11:13:38 +00:00
Vincent Torri ebc20c2236 API BREAK: fix Eina API so that it is more consistent with the other EFL
what is modified:

eina_counter_add -> eina_counter_new
eina_counter_delete -> eina_counter_free
eina_lalloc_delete -> eina_lalloc_free
eina_mempool_new -> eina_mempool_add
eina_mempool_delete -> eina_mempool_del
eina_mempool_alloc -> eina_mempool_malloc
eina_tiler_del -> eina_tiler_free

It remains some questions: have the following API a good name:

eina_module_list_delete
eina_list_free
eina_rbtree_delete

(see ticket #286)

If you find any problem, please report in that thread


SVN revision: 41187
2009-06-24 16:56:49 +00:00
Vincent Torri 9110d8d574 fix a bit the documentation, but there are still
a lot of doc to write...


SVN revision: 41164
2009-06-22 20:03:58 +00:00
Cedric BAIL 35526933af * eina: Remove memory leak (patch from Andre Dieb).
SVN revision: 40986
2009-06-09 16:02:20 +00:00
Vincent Torri c166854ae1 * minor formatting
* add some doc in eina_array
 * in eina_main.c, include only the necessary headers
 * fix some warnings (size_t <-> int)


SVN revision: 38740
2009-01-23 16:11:45 +00:00
Vincent Torri 0d166092ac * fix warning (missing alloca declaration)
* formatting


SVN revision: 38657
2009-01-20 08:29:41 +00:00
Gustavo Sverzut Barbieri ab95d9183d eina safety checks.
safety checks will report null pointers and other error conditions on
public api's and can be disabled by compile time check.

note that in order to have these checks working we need to make
EINA_ARG_NONNULL() void, otherwise GCC can remove these checks since
they're known to be false.

This commit also make two minor changes:

  * list and hash accessors and iterators are created even for empty
    entities. This is correct in my point of view since NULL should
    indicate error. Having these in were an optimziation, but not
    worth it, these are not the most common case and hitting this path
    is not of much cost.

 * unmarked some parameters as nonnull, mainly on list and inlist.



SVN revision: 38327
2008-12-26 18:31:14 +00:00
Cedric BAIL 437c220266 Add dladdr and env code for eina_module from Vincent Torri.
SVN revision: 37374
2008-11-01 15:39:53 +00:00
Carsten Haitzler 9f157c260c error macro.
SVN revision: 37323
2008-10-29 23:41:55 +00:00
Carsten Haitzler b4f33c6358 add error catching and output if mempool alloc/init fails.
SVN revision: 37321
2008-10-29 23:12:56 +00:00
Cedric BAIL 4953eb74fe Apps can now provide their own mempool.
SVN revision: 36847
2008-10-20 11:40:01 +00:00
Cedric BAIL 7c47066009 Change module API to use Eina_Array as we want to use mempool and module for Eina_List.
Fix at the same time a closing bug in eina_module.c.



SVN revision: 36312
2008-09-29 13:28:42 +00:00
Cedric BAIL 2acd11a39e Add a new type of memory pool and factorize test code.
SVN revision: 36267
2008-09-26 15:27:46 +00:00
Cedric BAIL 550ebc9ab1 Add hash and rbtree delete callback, cleanup the code and improve performance (hash as a new internal structure).
We still need a hash function for removing a node from the hash and destroying it at the same time.



SVN revision: 36222
2008-09-24 17:14:29 +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
Cedric BAIL 4423005ab4 Avoid some dereferencing and provide inline for mempool alloc/free/realloc.
SVN revision: 36078
2008-09-18 14:16:47 +00:00
Cedric BAIL ac21afc37f Reduce code size.
SVN revision: 36072
2008-09-18 10:04:01 +00:00
Cedric BAIL f7d92d57a4 Add statistics, gc support to mempool and a workaround path lookup for module.
SVN revision: 36051
2008-09-17 15:20:35 +00:00
Vincent Torri ae2e95969f * add documentation and a tutorial for the error module
* change api (eina_error_register to eina_error_msg_register)


SVN revision: 35838
2008-09-05 07:58:38 +00:00
Vincent Torri dafd079639 * move standard header files from eina_private.h to source files
* minor formatting


SVN revision: 35705
2008-08-28 07:46:42 +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 fd4aae2064 Remove trailing space.
SVN revision: 35439
2008-08-11 16:32:19 +00:00