Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
1b4c608087
Rename operator TEST_EMPTY into EMPTY_P to be compliant with iterator operator
2021-01-07 22:13:10 +01:00
Patrick Pelissier
a29682ca29
Create M_ASSERT macro to encapsulate assert within M*LIB
...
The goal is to enable the user to override this macro if needed so that it can enable or disable the M*LIB witout impacting its own assertions.
2020-10-29 22:46:17 +01:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
3d3a473716
Add macro ILIST_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5d144991cb
Reformat & add more assertions.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3a1a75f6f
Rename internal types:
...
a suffix ending with _ct means confidential type
ans is reserved for M*LIB internal usage.
OPLIST doesn't use the external types
but rather the internal types.
It enables to be independent of the real names
of the external types.
Such external names are planned to be fully customizable
(i.e. the user may define a name that suits its coding style)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5f9feb833c
Replace TAB by SPACE
2020-07-25 19:17:25 +02:00
Patrick Pelissier
784c42d850
Update _insert functions to update
...
iterators as per new specification.
2020-07-19 00:55:35 +02:00
Patrick Pelissier
8a36b5ff15
Workaround to avoid CLANG unused function warnings
2020-07-09 22:14:00 +02:00
Patrick Pelissier
78d0bfb286
Port new error oplist format to all containers.
2020-05-30 18:00:43 +02:00
Patrick Pelissier
d1ae26f0fd
* Add control than the type and the oplist are compatible
2020-05-17 10:27:30 +02:00
Patrick Pelissier
49a2e600c4
Add control of sub-oplist when creating a new oplist of a container
...
Add test case of this new control
Fix some corner bugs in some containers evolving their own oplists.
2020-05-15 21:19:39 +02:00
Patrick Pelissier
34f70a031f
Use M_STATIC_FAILURE to stop expanding methods in case of detected failure
2020-05-09 10:56:05 +02:00
Patrick Pelissier
e69203dc50
Remove exported PUSH / POP methods as they don't follow stricly the prototypes of such functions.
2020-03-26 21:43:44 +01:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
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