
This patch adds macros to help retrieve configuration values from qemu driver's configuration. Some configuration options are grouped together in the process. --- src/qemu/qemu_conf.c | 303 +++++++++++++-------------------------------------- 1 file changed, 73 insertions(+), 230 deletions(-)
Always fun to see refactoring that reduces code size.
+#define GET_VALUE_LONG(NAME, VAR) p = virConfGetValue(conf, NAME); \
This feels like a long line; I'd format it slightly differently: #define GET_VALUE_LONG(NAME, VAR) \ p = virConfGetValue(conf, NAME); \ ...
+ CHECK_TYPE(NAME, VIR_CONF_LONG); \ + if (p) VAR = p->l;
As long as you are refactoring, can you please split this line into two: if (p) \ VAR = p->l per our coding conventions?
+ +#define GET_VALUE_STR(NAME, VAR) p = virConfGetValue(conf, NAME); \
Again, this feels like a lot of indentation; starting the first line of the macro body after a continuation will get rid of a lot of this whitespace.
+ /* increasing the value by 1 makes all the loops going through + the bitmap (i = remotePortMin; i < remotePortMax; i++), work as + expected. */ + driver->remotePortMax += 1;
Why ' += 1' instead of the shorter '++'?
+ GET_VALUE_LONG("max_queued", driver->max_queued); + GET_VALUE_LONG("keepalive_interval", driver->keepAliveInterval); + GET_VALUE_LONG("keepalive_count", driver->keepAliveCount); + GET_VALUE_LONG("seccomp_sandbox", driver->seccompSandbox);
virConfFree(conf); return 0;
Should we add #undef GET_VALUE_LONG #undef GET_VALUE_STRING at the end, since our macros are merely local helpers for this function? ACK with nits addressed.