Commit 90a3e4c6 authored by Pino Toscano's avatar Pino Toscano Committed by Richard W.M. Jones

Add an helper CHECK_ERROR_CLEANUP macro

Extend the existing CHECK_ERROR macro to allow some code to be executed
right before raising Virterror.  Rework CHECK_ERROR to use
CHECK_ERROR_CLEANUP.
parent 96e6ff28
......@@ -43,11 +43,18 @@ static value Val_virconnectcredential (const virConnectCredentialPtr cred);
caml_leave_blocking_section (); \
} while (0)
/* Empty macro to use as empty parameter for other macros, since
* a null token as parameter when calling a macro is not allowed
* before C99.
*/
#define EMPTY
/* Check error condition from a libvirt function, and automatically raise
* an exception if one is found.
*/
#define CHECK_ERROR_CLEANUP(cond, cleanup, fn) \
do { if (cond) { cleanup; _raise_virterror (fn); } } while (0)
#define CHECK_ERROR(cond, fn) \
do { if (cond) _raise_virterror (fn); } while (0)
CHECK_ERROR_CLEANUP(cond, EMPTY, fn)
/*----------------------------------------------------------------------*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment