Fix issue: CLEAN method was not properly exported by tuple.

This commit is contained in:
Patrick Pelissier committed 2018-08-14 07:58:37 +02:00
1 parent 5d1eb45d5c
commit acbf1efad6
2 files changed
+15 -1

No files matched your search

+1 -1
View File
@@ -475,7 +475,7 @@ namespace m_tuple {
M_IF_METHOD_ALL(INIT_MOVE, __VA_ARGS__)(INIT_MOVE(M_C(name, _init_move)),), \
M_IF_METHOD_ALL(MOVE, __VA_ARGS__)(MOVE(M_C(name, _move)),), \
M_IF_METHOD_ALL(SWAP, __VA_ARGS__)(MOVE(M_C(name, _swap)),), \
M_IF_METHOD_ALL(CLEAN, __VA_ARGS__)(MOVE(M_C(name, _clean)),), \
M_IF_METHOD_ALL(CLEAN, __VA_ARGS__)(CLEAN(M_C(name, _clean)),), \
M_IF_METHOD(NEW, M_RET_ARG1(__VA_ARGS__,))(NEW(M_DELAY2(M_GET_NEW) M_RET_ARG1(__VA_ARGS__,)),), \
M_IF_METHOD(REALLOC, M_RET_ARG1(__VA_ARGS__,))(REALLOC(M_DELAY2(M_GET_REALLOC) M_RET_ARG1(__VA_ARGS__,)),), \
M_IF_METHOD(DEL, M_RET_ARG1(__VA_ARGS__,))(DEL(M_DELAY2(M_GET_DEL) M_RET_ARG1(__VA_ARGS__,)),), \
+14
View File
@@ -47,6 +47,7 @@ TUPLE_DEF2(pair3,
TUPLE_DEF2(pair_str,
(vala, string_t, STRING_OPLIST),
(valb, string_t, STRING_OPLIST))
#define M_OPL_pair_str_t() TUPLE_OPLIST(pair_str, STRING_OPLIST, STRING_OPLIST)
TUPLE_DEF2(single_str, (vala, string_t, STRING_OPLIST))
@@ -54,6 +55,13 @@ TUPLE_DEF2(pair2_str,
(str, string_t),
(value, unsigned long))
// Recursive tuple definition.
TUPLE_DEF2(rtuple,
(ituple, pair_str_t),
(name, string_t))
#define M_OPL_rtuple_t() TUPLE_OPLIST(rtuple, M_OPL_pair_str_t(), STRING_OPLIST)
static void check_swap(void)
{
pair_str_t p1, p2;
@@ -82,6 +90,12 @@ static void check_clean(void)
assert(string_equal_str_p (p1->vala, ""));
single_str_clear(p1);
M_LET(r, rtuple_t) {
string_set_str(r->name, "Hello");
rtuple_clean(r);
assert(string_equal_str_p (r->name, ""));
}
}
static void check_io(void)