[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 2/4] lockable: fix __COUNTER__ macro to be referenced properly
From: |
Stefan Hajnoczi |
Subject: |
[PULL v2 2/4] lockable: fix __COUNTER__ macro to be referenced properly |
Date: |
Mon, 4 May 2020 16:14:36 +0100 |
From: Daniel Brodsky <address@hidden>
- __COUNTER__ doesn't work with ## concat
- replaced ## with glue() macro so __COUNTER__ is evaluated
Fixes: 3284c3ddc4
Signed-off-by: Daniel Brodsky <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
include/qemu/lockable.h | 7 ++++---
include/qemu/rcu.h | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/include/qemu/lockable.h b/include/qemu/lockable.h
index 1aeb2cb1a6..b620023141 100644
--- a/include/qemu/lockable.h
+++ b/include/qemu/lockable.h
@@ -152,7 +152,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(QemuLockable,
qemu_lockable_auto_unlock)
* }
*/
#define WITH_QEMU_LOCK_GUARD(x) \
- WITH_QEMU_LOCK_GUARD_((x), qemu_lockable_auto##__COUNTER__)
+ WITH_QEMU_LOCK_GUARD_((x), glue(qemu_lockable_auto, __COUNTER__))
/**
* QEMU_LOCK_GUARD - Lock an object until the end of the scope
@@ -169,8 +169,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(QemuLockable,
qemu_lockable_auto_unlock)
* return; <-- mutex is automatically unlocked
* }
*/
-#define QEMU_LOCK_GUARD(x) \
- g_autoptr(QemuLockable) qemu_lockable_auto##__COUNTER__ = \
+#define QEMU_LOCK_GUARD(x) \
+ g_autoptr(QemuLockable) \
+ glue(qemu_lockable_auto, __COUNTER__) G_GNUC_UNUSED = \
qemu_lockable_auto_lock(QEMU_MAKE_LOCKABLE((x)))
#endif
diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
index 9c82683e37..570aa603eb 100644
--- a/include/qemu/rcu.h
+++ b/include/qemu/rcu.h
@@ -170,7 +170,7 @@ static inline void rcu_read_auto_unlock(RCUReadAuto *r)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(RCUReadAuto, rcu_read_auto_unlock)
#define WITH_RCU_READ_LOCK_GUARD() \
- WITH_RCU_READ_LOCK_GUARD_(_rcu_read_auto##__COUNTER__)
+ WITH_RCU_READ_LOCK_GUARD_(glue(_rcu_read_auto, __COUNTER__))
#define WITH_RCU_READ_LOCK_GUARD_(var) \
for (g_autoptr(RCUReadAuto) var = rcu_read_auto_lock(); \
--
2.25.3
- [PULL v2 0/4] Block patches, Stefan Hajnoczi, 2020/05/04
- [PULL v2 1/4] fuzz: select fuzz target using executable name, Stefan Hajnoczi, 2020/05/04
- [PULL v2 2/4] lockable: fix __COUNTER__ macro to be referenced properly,
Stefan Hajnoczi <=
- [PULL v2 3/4] lockable: replaced locks with lock guard macros where appropriate, Stefan Hajnoczi, 2020/05/04
- [PULL v2 4/4] lockable: Replace locks with lock guard macros, Stefan Hajnoczi, 2020/05/04
- Re: [PULL v2 0/4] Block patches, no-reply, 2020/05/05
- Re: [PULL v2 0/4] Block patches, no-reply, 2020/05/05
- Re: [PULL v2 0/4] Block patches, no-reply, 2020/05/05
- Re: [PULL v2 0/4] Block patches, no-reply, 2020/05/05
- Re: [PULL v2 0/4] Block patches, Peter Maydell, 2020/05/05