55 Commits
Author SHA1 Message Date
Patrick Pelissier 60a10eb799 Uniformize the macro names 2019-06-09 12:02:38 +02:00
Patrick Pelissier dc803f23bb Add missing const 2019-03-09 16:38:44 +01:00
Patrick Pelissier 8b3a4a802c Happy new year! 2019-01-02 18:12:07 +01:00
Patrick Pelissier 02d4bf0e09 Export method _empty_p for operator TEST_EMPTY for all containers. 2018-10-29 11:06:54 +01:00
Patrick Pelissier c87696f5c1 Add _hash, _equal_p, _out_str, _in_str, _get_str, _parse_str
for intrusive list.
2018-10-03 22:01:40 +02:00
Patrick Pelissier 4f3dad4bea Add _reverse for I-LIST 2018-10-01 21:22:19 +02:00
Patrick Pelissier fc608b21ee Update comment 2018-09-25 20:02:58 +02:00
Patrick Pelissier e0c456490a Fix definition of oplist for containers:
if no argument is given, it shall behave as if it was defined with
a standard C type.
2018-09-15 17:59:50 +02:00
Patrick Pelissier 2e3b312fab Fix issue of recursive usage of M_GLOBAL_OPLIST_OR_DEF
Update the way to use the macro to avoid being limited by the
preprocessor limitation.
2018-09-14 20:57:55 +02:00
Patrick Pelissier 2ff7631c9c Port to M_CALL infrastructure. 2018-09-10 07:53:07 +02:00
Patrick Pelissier 3b0e940284 Add missing _ptr & _srcptr alias. 2018-08-19 17:58:23 +02:00
Patrick Pelissier c7b533f21e Cleanup terminology 2018-08-19 10:54:48 +02:00
Patrick Pelissier eb4f249a54 Add missing CLEAN method in export OPLIST. 2018-08-14 23:09:12 +02:00
Patrick Pelissier 143a5fdf4f Fix issue if given type is a T * = TYPE:
token pasting created const T *, which is not the same as
const TYPE = T * const
2018-08-03 20:20:57 +02:00
Patrick Pelissier 27a08da430 Add node contract check. 2018-07-31 08:19:45 +02:00
Patrick Pelissier 96202aa78f Do not use reserved identifiers of the C standard (See 7.1.3 Reserved identifiers) 2018-07-14 14:35:14 +02:00
Patrick Pelissier 26b8c1d0a2 Add method _move & _init_move. 2018-07-01 17:16:36 +02:00
Patrick Pelissier cbc09f83d4 Disable MOVE & INIT_MOVE for such containers (TBC). 2018-06-27 20:09:45 +02:00
Patrick Pelissier 34dc8b32cb Fix broken _swap 2018-06-02 21:26:20 +02:00
Patrick Pelissier c4548c4355 Fix splice_at which was broken. 2018-05-30 20:21:27 +02:00
Patrick Pelissier 0ff163e541 Fix issue for intrusive list and _splice_back. 2018-05-29 23:00:25 +02:00
Patrick Pelissier e62ae9fb94 Fix the iterators calculation of _splice_at.
NOTE: iterator seems broken for _splice_back. To check
2018-05-28 23:51:10 +02:00
Patrick Pelissier 187b6cf072 Update to new specification. 2018-05-28 23:46:30 +02:00
Patrick Pelissier c4c14b0fc6 Add _splice_at 2018-05-28 22:08:55 +02:00
Patrick Pelissier 00c5e3544f Export _splice_back methods.
Add _push_move & _pop_move methods for dual push list.
2018-05-27 11:16:16 +02:00
Patrick Pelissier f529a5eea8 Use of a trick to make the function compatible with other
definition of the _it method (use of const for the container).
2018-05-24 22:57:27 +02:00
Patrick Pelissier 210e05f7fc Update copyright to 2018 2018-01-29 20:28:30 +01:00
Patrick Pelissier 379a810fbc Clean up some code. 2017-10-31 17:30:55 +01:00
Patrick Pelissier 2e564088b0 Simplify the inclusion of headers. 2017-09-16 10:14:45 +02:00
Patrick Pelissier 1930bdeac1 _DEF macros checks if a global oplist is register if there is no one
given in the macro call. If it founds one, it will be it instead
of M_DEFAULT_OPLIST.
2017-09-16 08:31:22 +02:00
Patrick Pelissier 172e0bbe14 Fix bug of _swap. 2017-08-20 21:51:05 +02:00
Patrick Pelissier 2f0e2397bd Add function _swap 2017-08-14 17:06:14 +02:00
Patrick Pelissier 98f66ecf8e Add it_insert 2017-08-13 10:18:54 +02:00
Patrick Pelissier 980170d88f Add list _splice_back 2017-08-12 10:10:28 +02:00
Patrick Pelissier 98f383052e Add MILIST_CONTRACT
Add ilist_splice
2017-08-08 22:57:56 +02:00
Patrick Pelissier f7277884a6 Fix issue for intrusive list & free :
we read the next pointer after freeing the memory !
2017-08-05 13:06:04 +02:00
Patrick Pelissier 750de41984 Replace FREE method by DEL method as it is a single object. 2017-08-01 23:08:15 +02:00
Patrick Pelissier eb769c7b20 Add new functions to intrusive lists:
* next_obj
* previous_obje
* it_remove

clear function will call clear operator from the type
and if defined, also the free operator on the object
of the list.
2017-08-01 22:57:13 +02:00
Patrick Pelissier da9d87bf4b Remove ilist_ prefix from Intrusive List
See commit on Shared Pointer
Additional Fix:* the iterator name is also impacted
and shall be converted in the sources (_it_ change from being a prefix to a suffix).
2017-07-25 22:27:48 +02:00
Patrick Pelissier ac48547fee Fix issue for last_p which doesn't detect an end of iteration as valid. 2017-07-15 21:32:07 +02:00
Patrick Pelissier 081b9d7f6c Use of M_CONST_CAST for intrusive list. 2017-05-26 12:41:52 +02:00
Patrick Pelissier e2f0955385 Do the same for intrusive list. 2017-04-23 18:39:31 +02:00
Patrick Pelissier ebf24d41cf Export back NEW / DEL / REALLOC of oplist to container oplist 2017-03-30 20:57:44 +02:00
Patrick Pelissier 4fa296c379 Port to M_TYPE_FROM_FIELD 2017-03-15 22:06:19 +01:00
Patrick Pelissier eaf3af8c07 Implement IT_END operator.
Add missing IT_LAST operator
2017-03-13 10:32:57 +01:00
Patrick Pelissier 80de5d06c8 Additional clean up 2017-03-06 22:06:22 +01:00
Patrick Pelissier e83a43172a Fixes #1 2017-03-06 22:04:37 +01:00
Patrick Pelissier d29f9efca1 Intrusive list are defined as a struct instead of a mirror
of the previous interface:
prepare change for C++ compatibility.
2017-03-06 21:51:52 +01:00
Patrick Pelissier 41a78097fd Add oplist parameter to ilist 2017-03-03 23:38:24 +01:00
Patrick Pelissier 2b27d36692 Remove check_instance from i-list 2017-02-27 21:17:32 +01:00