From 32989ef17e2bbc0fa6c0413e469ce5bd47a5915b Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Mon, 1 May 2017 17:42:51 +0200 Subject: [PATCH] Add M_DO_MOVE macro --- m-core.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/m-core.h b/m-core.h index d53f18db..c4286730 100644 --- a/m-core.h +++ b/m-core.h @@ -917,6 +917,15 @@ m_core_hash (const void *str, size_t length) M_GET_CLEAR oplist (src); ) \ } while (0) +/* Perform a MOVE if present, or emulate it using CLEAR/INIT_MOVE + otherwise */ +#define M_DO_MOVE(oplist, dest, src) do { \ + M_IF_METHOD(MOVE, oplist)(M_GET_MOVE oplist (dest, src);, \ + M_GET_CLEAR oplist (dest); \ + M_DO_INIT_MOVE (oplist, dest, src) ; ) \ + } while (0) + + /************************************************************/ /******************** Syntax Enhancing **********************/ /************************************************************/