On 08/21/2017 01:35 PM, Frediano Ziglio wrote:
Avoid to have to declare iterator and pass as an argument.

Signed-off-by: Frediano Ziglio <[email protected]>

Ack.

---
  server/display-channel.c | 32 +++++++++++---------------------
  server/display-channel.h |  4 ++--
  server/main-channel.c    | 18 ++++++------------
  server/red-channel.c     | 24 ++++++++----------------
  server/red-channel.h     |  4 ++--
  server/red-client.c      | 19 +++++++------------
  server/red-common.h      | 10 +++++-----
  server/red-worker.c      |  6 ++----
  server/reds-private.h    |  4 ++--
  server/reds.c            | 45 +++++++++++++++------------------------------
  server/stream.c          | 15 +++++----------
  11 files changed, 65 insertions(+), 116 deletions(-)

Changes since v1:
- fix macro concatenation and expansion of __LINE__.

Yes, using another macro (G_PASTE) as an indirection macro works.

Uri.

[keeping only the v2 lines below]

diff --git a/server/red-common.h b/server/red-common.h
index cb459b05..9ff1fd9b 100644
--- a/server/red-common.h
+++ b/server/red-common.h
@@ -81,16 +81,16 @@ typedef struct GListIter {
  } GListIter;
#define GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, _dir) \
-    for (_iter.link = _list; \
+    for (GListIter _iter = { .link = _list }; \
          (_data = (_type *) (_iter.link ? _iter.link->data : NULL), \
           _iter.next = (_iter.link ? _iter.link->_dir : NULL), \
           _iter.link) != NULL; \
           _iter.link = _iter.next)
-#define GLIST_FOREACH(_list, _iter, _type, _data) \
-    GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, next)
+#define GLIST_FOREACH(_list, _type, _data) \
+    GLIST_FOREACH_GENERIC(_list, G_PASTE(_iter_, __LINE__), _type, _data, next)
-#define GLIST_FOREACH_REVERSED(_list, _iter, _type, _data) \
-    GLIST_FOREACH_GENERIC(_list, _iter, _type, _data, prev)
+#define GLIST_FOREACH_REVERSED(_list, _type, _data) \
+    GLIST_FOREACH_GENERIC(_list, G_PASTE(_iter_, __LINE__), _type, _data, prev)
#endif /* RED_COMMON_H_ */
_______________________________________________
Spice-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to