VIR_STEAL copies the second argument into the first and then sets it to NULL. This is useful for stealing pointers. --- src/internal.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/internal.h b/src/internal.h index 0dc34c7..c633ee6 100644 --- a/src/internal.h +++ b/src/internal.h @@ -307,6 +307,18 @@ } while (0) /** + * VIR_STEAL: + * + * Steals pointer passed as second argument into the first argument. Second + * argument must not have side effects. + */ +# define VIR_STEAL(a, b) \ + do { \ + (a) = (b); \ + (b) = NULL;\ + } while (0) + +/** * virCheckFlags: * @supported: an OR'ed set of supported flags * @retval: return value in case unsupported flags were passed -- 2.9.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list