Commit Graph

244 Commits

Author SHA1 Message Date
Cedric BAIL 1950725606 Add merge function to list data type.
SVN revision: 36922
2008-10-21 11:28:38 +00:00
Cedric BAIL 93711c814e Fix hash iterator to iterate with only one element.
SVN revision: 36858
2008-10-20 14:45:01 +00:00
Cedric BAIL 6734c580df Zero is a correct value.
SVN revision: 36854
2008-10-20 13:21:52 +00:00
Cedric BAIL 4953eb74fe Apps can now provide their own mempool.
SVN revision: 36847
2008-10-20 11:40:01 +00:00
Vincent Torri 84dcc24d09 Fix compilation and warnings on Windows:
* include Evil.h for getenv on mingw32ce
 * include config.h in benchmark.c so that EAPI is correctly defined
 * minor fixes in configure.ac


SVN revision: 36729
2008-10-16 21:31:51 +00:00
Cedric BAIL 380120ce2a Should fix build outside of the source tree.
SVN revision: 36689
2008-10-15 16:23:14 +00:00
Cedric BAIL d905ee9bda Add option to report stringshare usage (E17 use around 10000 differents strings).
SVN revision: 36658
2008-10-14 15:32:57 +00:00
Cedric BAIL ed012620d1 Fix stringshare bug with same length.
SVN revision: 36657
2008-10-14 15:31:45 +00:00
Cedric BAIL a61ba1c35a Fix some warning.
SVN revision: 36563
2008-10-10 09:33:40 +00:00
Cedric BAIL 195b2da188 Give more choice to eina_list mempool.
SVN revision: 36479
2008-10-06 14:47:09 +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 a44f814dd2 Using mempool improve cache locality and speed list manipulation like sort.
SVN revision: 36363
2008-09-30 16:48:28 +00:00
Cedric BAIL b1768c99e6 Make eina_error depend on no other sub module that need initialization.
SVN revision: 36361
2008-09-30 16:25:11 +00:00
Cedric BAIL 9ffada517d Faster sort initialisation.
SVN revision: 36359
2008-09-30 14:16:18 +00:00
Cedric BAIL 0bc2413113 Fix prev pointer during stringshare_del.
SVN revision: 36319
2008-09-29 17:07:50 +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
Vincent Torri d6ae9053ad minor formatting
SVN revision: 36293
2008-09-28 13:10:08 +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 a466b34ea0 Faster sort from Alexandre Becoulet integrated by quarium inside eina.
SVN revision: 36265
2008-09-26 13:45:30 +00:00
Cedric BAIL 6f5b3584dd Store build information inside eina_config.h, and fix magic use.
SVN revision: 36263
2008-09-26 11:41:55 +00:00
Cedric BAIL 42d39725b4 Last part of quarium patch.
SVN revision: 36257
2008-09-25 14:46:48 +00:00
Cedric BAIL 8b85ce70d4 Patch from quarium.
Add magic to array and list.

Need to patch autotools to generate something like eina_config.h.



SVN revision: 36256
2008-09-25 14:46:16 +00:00
Cedric BAIL e8b25fb405 Add a sort benchmark.
SVN revision: 36250
2008-09-25 12:41:49 +00:00
Cedric BAIL 040e5573d9 Patch from Arnaud de Turckheim "quarium" <quarium@gmail.com>.
Use magic inside stringshare without slowdown of benchmark.
Fix magic when not in DEBUG mode.



SVN revision: 36246
2008-09-25 09:02:41 +00:00
Cedric BAIL 4fddcc38df Fix error stuff.
SVN revision: 36225
2008-09-24 17:21:53 +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
Cedric BAIL b00e9e5c64 Use rbtree helper.
SVN revision: 36208
2008-09-24 12:57:26 +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 8acad8a50e Add rbtree destructor without tree reorder and use it.
SVN revision: 36188
2008-09-23 16:07:48 +00:00
Vincent Torri 476222cc6c add main doc for eina_convert
SVN revision: 36187
2008-09-23 15:57:57 +00:00
Vincent Torri 3edd75f9ba formatting
SVN revision: 36179
2008-09-23 05:24:26 +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 f656fabac1 Make magical mask easily testable.
SVN revision: 36171
2008-09-22 14:45:57 +00:00
Cedric BAIL d0871d7d7d Eina stringshare now beat evas and ecore with this last change.
Benchmarking with enlightenment real data (25000 string add, 20 000 del) :
- eina:  4151399
- evas:  4286973
- ecore: 7753004



SVN revision: 36166
2008-09-22 13:11:08 +00:00
Cedric BAIL d3e0b59223 Reduce number of malloc/free by automatically created one stringshare
per tree node.


SVN revision: 36165
2008-09-22 13:06:29 +00:00
Cedric BAIL 1726e80939 Use define.
SVN revision: 36159
2008-09-22 10:08:44 +00:00
Vincent Torri 0b93ba01a6 add doc to the counter module. remove the link to the
tutorial (the module is too short for a tutorial to be
useful)


SVN revision: 36126
2008-09-20 09:46:54 +00:00
Vincent Torri f196383f8f finish doc of the file module. Add a warning if eina_file_split() is used
SVN revision: 36122
2008-09-20 08:42:35 +00:00
Cedric BAIL 710354bd96 Change eina_benchmark_register API as it can fail in many occasion.
SVN revision: 36097
2008-09-19 12:32:24 +00:00
Cedric BAIL 80a227ff13 We have now a defined behaviour when we have more than one entry with the same
key in the hash table.


SVN revision: 36096
2008-09-19 12:19:06 +00:00
Vincent Torri f50feadeae * add benchmark and file documentation
* reorganize a bit more. it's not finished
 * fix spellingg and formatting 
 * gnuplot file names generated by our bechmarks tests have an
   absolute time description and not H:M:S description, as this
   breaks the check out of the repo on Windows.


SVN revision: 36090
2008-09-19 05:22:43 +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 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 0d9b2f3f8d Remove useless counter init/shutdown.
SVN revision: 36075
2008-09-18 12:24:07 +00:00
Cedric BAIL ce16573cb3 Add init/shutdown to benchmark and fix its users.
SVN revision: 36073
2008-09-18 10:04:46 +00:00
Cedric BAIL ac21afc37f Reduce code size.
SVN revision: 36072
2008-09-18 10:04:01 +00:00
Cedric BAIL 27040661af Use global EINA_ERROR_OUT_OF_MEMORY.
SVN revision: 36071
2008-09-18 10:03:34 +00:00
Vincent Torri 54de28cc68 * add doc for counter and convert modules
* minor spelling, formatting and doxygen fixes


SVN revision: 36057
2008-09-17 18:55:54 +00:00
Cedric BAIL f3bab28c36 Fix module stuff to be able to run test in the build directory.
SVN revision: 36052
2008-09-17 15:21:16 +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
Cedric BAIL 3bf0d7ed5e Add protection for dump function also.
SVN revision: 36042
2008-09-17 08:59:47 +00:00
Cedric BAIL eeb52f487a Fix bug reported by Vincent Torri and add a test to trigger it.
SVN revision: 36041
2008-09-17 08:33:35 +00:00
Vincent Torri 7fd7cc717c * update the doc of stringshre
* fix minor warnings from doxygen


SVN revision: 36004
2008-09-15 19:58:36 +00:00
Vincent Torri 78c9527052 * add documentation. The tutorial needs to be written, though
* rename eina_arra_count() to eina_array_count_get() and
   eina_arra_get() to eina_array_data_get()


SVN revision: 36003
2008-09-15 19:17:15 +00:00
Cedric BAIL e3e2afca18 Don't compute string length when not really needed.
SVN revision: 36001
2008-09-15 13:38:42 +00:00
Cedric BAIL 1582d52c3c New stringshare implementation.
We use 256 buckets with a rbtree per bucket. The key of rbtree is the hash
on 12bits and each node of the rbtree have a list of string.

Thanks to Gustavo and Vincent for their help.


SVN revision: 36000
2008-09-15 12:54:54 +00:00
Cedric BAIL c52f7b7b62 Make inline only usefull function.
Return information about potential error during eina_array_remove.



SVN revision: 35888
2008-09-08 12:19:15 +00:00
Vincent Torri b73180cd01 * add array doc
* eina_array_push() returns now a bool
 * fix compilation


SVN revision: 35871
2008-09-07 19:12:49 +00:00
Vincent Torri 557107790a * add accessor doc
* fix and add some links


SVN revision: 35865
2008-09-07 07:19:19 +00:00
Vincent Torri 0b6f01fec5 * add doc for iterators
* add table of content on the main page


SVN revision: 35864
2008-09-07 05:44:00 +00:00
Vincent Torri 1f3a6a7c5a fix examples in tutorial
SVN revision: 35851
2008-09-06 09:14:54 +00:00
Vincent Torri 108e5a3ee5 * fix section title
* forget a remark


SVN revision: 35850
2008-09-06 08:54:22 +00:00
Vincent Torri 7e6e46723e * finish tutorial of eina_error
* spelling


SVN revision: 35849
2008-09-06 08:48:36 +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
Cedric BAIL 991867bd7b Share eina_benchmark to other libs also.
SVN revision: 35832
2008-09-04 15:06:26 +00:00
Cedric BAIL a257cf02f3 Add a routine to extract path information.
SVN revision: 35814
2008-09-03 14:40:12 +00:00
Cedric BAIL 9638ded27f Fix initialisation logic.
SVN revision: 35806
2008-09-03 12:06:50 +00:00
Cedric BAIL 7f3c271680 Update copyright credit correctly.
SVN revision: 35775
2008-09-01 12:51:50 +00:00
Cedric BAIL 345242f6c3 Update copyright credit correctly.
SVN revision: 35774
2008-09-01 12:42:16 +00:00
Vincent Torri d722648292 * fix compilation on Windows
* improve a bit autotools


SVN revision: 35761
2008-08-31 14:05:17 +00:00
Cedric BAIL 1f6ad61f54 Use memcmp as we know the size of both string.
SVN revision: 35740
2008-08-29 16:09:39 +00:00
Vincent Torri d05b258fcb fix compilation on Windows
SVN revision: 35736
2008-08-29 14:45:55 +00:00
Cedric BAIL 6bbb9bf821 Remove useless indirection and useless tests.
SVN revision: 35733
2008-08-29 13:52:16 +00:00
Cedric BAIL c0e5707e30 Fix counter and cleanup this stuff a little.
SVN revision: 35731
2008-08-29 13:49:06 +00:00
Vincent Torri 20bd230e96 port eina_counter code to Windows.
SVN revision: 35730
2008-08-29 13:34:30 +00:00
Cedric BAIL 67f3ddfb7a Move private function in the right part of the file.
SVN revision: 35729
2008-08-29 09:34:39 +00:00
Vincent Torri 711d48bcd5 now it should be correct
SVN revision: 35724
2008-08-28 23:51:48 +00:00
Vincent Torri 5fddd7766e wrong shared lib extension...
SVN revision: 35723
2008-08-28 23:38:43 +00:00
Cedric BAIL 78e7047377 Use rbtree instead of inlist and make hash way faster.
SVN revision: 35720
2008-08-28 16:35:43 +00:00
Cedric BAIL 3e562ccfc2 Add a context to the callback.
SVN revision: 35719
2008-08-28 16:33:40 +00:00
Cedric BAIL 9494785cb7 Inline red black tree lookup.
SVN revision: 35716
2008-08-28 14:37:26 +00:00
Cedric BAIL 3a10b7f782 Use rbtree instead of inlist. It's way faster.
SVN revision: 35715
2008-08-28 14:27:43 +00:00
Cedric BAIL 9596935138 Fix rbtree removal. Was a bug due to rotation and parent lost.
SVN revision: 35714
2008-08-28 13:54:51 +00:00
Vincent Torri ccf94fe4e3 * EAPI is now correctly defined on Windows
* move an exported variable


SVN revision: 35712
2008-08-28 12:41:58 +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
Vincent Torri 29313e097f use 'dll' extension on Windows.
SVN revision: 35704
2008-08-28 06:49:04 +00:00
Vincent Torri 4336fb3658 forget to open groups in doc...
SVN revision: 35703
2008-08-28 06:34:20 +00:00
Vincent Torri 4485f06f66 fix a bit list documentation. Not finished yet.
SVN revision: 35702
2008-08-28 06:31:18 +00:00
Cedric BAIL 5a9be377b1 Oops, forgot to initialize.
SVN revision: 35698
2008-08-27 17:13:58 +00:00
Cedric BAIL 604a020f15 Full test of eina_convert.
SVN revision: 35694
2008-08-27 14:14:42 +00:00
Vincent Torri 9824a1a86c Update documentation:
* run 'make doc' to generate the documentation. Hence
   gendoc disappear. Doxyfile is moved to doc/
 * update main page and doc of hash table, but it has to
   be filled.



SVN revision: 35692
2008-08-27 13:34:04 +00:00
Cedric BAIL 394c787dde Add Red Black tree API. Right now only insertion, lookup and iterator work.
The current implementation choose to move the node allocation outside of eina
control like eina_inlist. They currently have the same memory footprint as
eina_inlist and the implementation of insertion and lookup are iterative
making it quite fast. This should make them a good competitor of eina_inlist
for eina_hash and eina_stringshare.



SVN revision: 35689
2008-08-27 10:07:12 +00:00
Cedric BAIL 4390a37a70 Add eina_array_pop and rename eina_array_append by eina_array_push.
SVN revision: 35679
2008-08-26 10:23:45 +00:00
Cedric BAIL 3878e945fb Some cleanup. Add EAPI in the .c file and move the locale function up in the file.
SVN revision: 35678
2008-08-26 08:59:25 +00:00
Jorge Luis Zapata Muga 7ae301f601 Place pre-conditions where they belong
Remove unused rectangle functions

SVN revision: 35634
2008-08-23 19:50:21 +00:00
Cedric BAIL 4bc094c45a As we are heavy user of int to string and double to string in the EFL, provide a fast and portable one.
SVN revision: 35604
2008-08-21 14:20:41 +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 c035c8eeab Use the right type.
SVN revision: 35459
2008-08-13 09:26:13 +00:00
Cedric BAIL 37061474bc Remove warning and only include needed stuff.
SVN revision: 35456
2008-08-13 09:22:50 +00:00
Cedric BAIL a7aaf30440 Merge common code.
SVN revision: 35455
2008-08-13 09:21:33 +00:00
Cedric BAIL 911cd4deda Add iterator/accessor to eina list.
Change list size type to unsigned int.


SVN revision: 35454
2008-08-13 09:19:34 +00:00
Cedric BAIL e360e1b2b9 Cleanup.
SVN revision: 35446
2008-08-12 16:01:10 +00:00
Cedric BAIL d299b79375 Add Inlist Iterator.
SVN revision: 35445
2008-08-12 15:58:41 +00:00
Cedric BAIL 9c1d8d3d95 Change function name to match its new behaviour. jumpt_at -> get_at.
SVN revision: 35444
2008-08-12 08:41:39 +00:00
Cedric BAIL fbb333c916 Use the new iterator API.
SVN revision: 35443
2008-08-12 08:40:36 +00:00
Cedric BAIL a46c20d137 Easier API and follow gustavo's remark.
SVN revision: 35440
2008-08-11 17:22:36 +00:00
Cedric BAIL fd4aae2064 Remove trailing space.
SVN revision: 35439
2008-08-11 16:32:19 +00:00
Cedric BAIL 43cc2dca6f Add first try for an accessor and iterator API, comment welcome (lack inlist and list currently).
Rewrite EINA_ARRAY_ITER_NEXT, still fast, need one more parameter, but no more EINA_ARRAY_ITER_END.


SVN revision: 35438
2008-08-11 16:30:16 +00:00
doursse bbf9b05530 fix doxy doc
SVN revision: 35416
2008-08-09 05:47:15 +00:00
Cedric BAIL 44e3c73e19 After benchmarking, the superfast hash function does impact performance
as it better spread data in the hash table.


SVN revision: 35412
2008-08-08 16:07:32 +00:00
Cedric BAIL ce23f3c2a9 After benchmarking, providing inline does impact performance of list and array user.
SVN revision: 35406
2008-08-08 14:20:11 +00:00
Cedric BAIL 5cfb71ff72 Remove warning fix test covering.
SVN revision: 35405
2008-08-08 12:29:13 +00:00
Jorge Luis Zapata Muga ee54713d9d Allow user provided functions for printing messages
Make the stdout print mgs function exportable
Add a FILE * print msg function (useful for logging)


SVN revision: 35404
2008-08-08 10:39:47 +00:00
Cedric BAIL 81d520804e Fix improved version of eina_array_remove.
SVN revision: 35384
2008-08-07 17:12:06 +00:00
Cedric BAIL 97afef9508 Initialise all sub system.
SVN revision: 35380
2008-08-07 13:12:57 +00:00
Cedric BAIL cf5bc3129d Use the common out of memory error.
SVN revision: 35379
2008-08-07 13:11:13 +00:00
Cedric BAIL f193096aa8 Add eina_list test suite. Cleanup list implementation and share out of memory error.
SVN revision: 35378
2008-08-07 13:09:09 +00:00
Cedric BAIL ddaa7d4d8f License changes (BSD -> LGPL)
SVN revision: 35360
2008-08-06 18:15:24 +00:00
Cedric BAIL 693f0eca8d Build new API.
SVN revision: 35354
2008-08-06 15:53:03 +00:00
Cedric BAIL d8ee8aee6c Fix eina_stringshare_shutdown to return value like all eine shutdown funtion.
Cleanup hash function call.


SVN revision: 35352
2008-08-06 15:49:50 +00:00
Cedric BAIL 69945bf4ec Major cleanup. Eina_Hash now support other key than string. All code except
allocation failure and foreach is covered by the test.


SVN revision: 35351
2008-08-06 15:46:57 +00:00
Cedric BAIL 0300d7019f Add global init/shutdown API to Eina. Include eina_counter header.
SVN revision: 35345
2008-08-06 15:37:29 +00:00
Cedric BAIL 4b2812b7e0 Add a counter API, usefull for benchmarking.
SVN revision: 35344
2008-08-06 15:35:56 +00:00
Cedric BAIL 5f85aa8a80 Hide the type.
SVN revision: 35321
2008-08-04 17:00:30 +00:00
Cedric BAIL ba49a3fee1 Cover lazy allocator at 100%. Add error checking capability.
SVN revision: 35320
2008-08-04 16:50:03 +00:00
Cedric BAIL 5f783f52d8 Add eina inlist tests suite, remove dead code and cleanup iterator.
SVN revision: 35302
2008-08-01 15:44:53 +00:00
Cedric BAIL 645db96755 Fix error get/set.
SVN revision: 35300
2008-08-01 14:26:13 +00:00
Cedric BAIL 2098318e35 As we use eina_error, we should init/shutdown it properly.
SVN revision: 35297
2008-08-01 14:23:54 +00:00
Cedric BAIL e0d8b4e1c8 This function is deprecated by eina_error.c
SVN revision: 35295
2008-08-01 14:21:43 +00:00
Cedric BAIL 146bd7be74 Link with coverage support.
SVN revision: 35289
2008-08-01 12:27:44 +00:00
Cedric BAIL 67d2b46784 Fix and improvement for stringshare and array, thanks to the tests suite.
SVN revision: 35288
2008-08-01 12:26:35 +00:00
Cedric BAIL 254ce073a8 Don't display gcov file.
SVN revision: 35287
2008-08-01 12:24:53 +00:00
Cedric BAIL a309e49392 Cleanup the mempool stuff.
SVN revision: 35277
2008-07-31 17:00:56 +00:00
Cedric BAIL f377939d0b Fix some warning.
SVN revision: 35274
2008-07-31 16:54:02 +00:00
Cedric BAIL e04f59c7b0 Export a magic API.
SVN revision: 35270
2008-07-31 15:08:19 +00:00
Sebastian Dransfeld fa1cf1962c typo
SVN revision: 35259
2008-07-30 17:29:11 +00:00
Cedric BAIL edce92f017 Add array and cleanup lalloc namespace.
SVN revision: 35257
2008-07-30 16:34:54 +00:00
Peter Wehrfritz 0eefad12bd - add init() and shutdown() functions
- add doxy


SVN revision: 35256
2008-07-30 14:42:37 +00:00
Cedric BAIL 86f58ba639 Use only the needed headers per file and remove some warning.
SVN revision: 35253
2008-07-30 13:35:49 +00:00
doursse f4bfef330c cvsignore++
SVN revision: 35252
2008-07-30 13:17:31 +00:00
doursse 16b95f91c9 install headers in $prefix/include/eina-$VERSION_MAJOR to allow parralel
installations between different major versions


SVN revision: 35251
2008-07-30 13:16:09 +00:00
Cedric BAIL 3b7fb95c9d Add .cvsignore.
SVN revision: 35250
2008-07-30 13:09:03 +00:00
Cedric BAIL 6e74d01030 Adding stringshare from evas inside eina.
SVN revision: 35249
2008-07-30 13:05:13 +00:00
Cedric BAIL a92e3d6c83 Adding turran work to unify EFL data types and functions.
SVN revision: 35248
2008-07-30 12:46:55 +00:00