Add SWAP for m-shared
This commit is contained in:
1 parent
29d3439900
commit
7118da65ae
1 file changed
+13
-1
+13
-1
@@ -54,7 +54,8 @@
|
|||||||
INIT_SET(M_C3(shared_, name, _init_set)), \
|
INIT_SET(M_C3(shared_, name, _init_set)), \
|
||||||
SET(M_C3(shared_, name, _set)) \
|
SET(M_C3(shared_, name, _set)) \
|
||||||
INIT_MOVE(M_C3(shared_, name, _init_move)), \
|
INIT_MOVE(M_C3(shared_, name, _init_move)), \
|
||||||
MOVE(M_C3(shared_, name, _move)) \
|
MOVE(M_C3(shared_, name, _move)), \
|
||||||
|
SWAP(M_C3(shared_, name, _swap)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define SHAREDI_PTR_DEF2(name, type, oplist) \
|
#define SHAREDI_PTR_DEF2(name, type, oplist) \
|
||||||
@@ -173,6 +174,17 @@
|
|||||||
M_C3(shared_, name, _init_move)(dest, shared); \
|
M_C3(shared_, name, _init_move)(dest, shared); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
static inline void \
|
||||||
|
M_C3(shared_, name, _swap)(M_C3(shared_, name, _t) p1, \
|
||||||
|
M_C3(shared_, name, _t) p2) \
|
||||||
|
{ \
|
||||||
|
SHAREDI_CONTRACT(p1); \
|
||||||
|
SHAREDI_CONTRACT(p2); \
|
||||||
|
M_SWAP (struct M_C3(shared_, name, _s)*, *p1, *p2); \
|
||||||
|
SHAREDI_CONTRACT(p1); \
|
||||||
|
SHAREDI_CONTRACT(p2); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
static inline const type * \
|
static inline const type * \
|
||||||
M_C3(shared_, name, _cref)(const M_C3(shared_, name, _t) shared) \
|
M_C3(shared_, name, _cref)(const M_C3(shared_, name, _t) shared) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
Reference in new issue
Block a user