]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix missing ast_test_flag64 in extconf.c
authorArtem Umerov <artem1999.umerov@gmail.com>
Thu, 28 Aug 2025 21:43:11 +0000 (00:43 +0300)
committerAsterisk Development Team <asteriskteam@digium.com>
Wed, 10 Sep 2025 19:53:00 +0000 (19:53 +0000)
Fix missing ast_test_flag64 after https://github.com/asterisk/asterisk/commit/43bf8a4ded7a65203b766b91eaf8331a600e9d8d

(cherry picked from commit 5a32533245b0ecacaa645836734d1831c16d1982)

utils/extconf.c

index 91615cb525fe2767fa3d0d56adcb2e6e281e0b7e..ee6b4bc7b90aabc5ee466e7ca97313ceb9859d53 100644 (file)
@@ -674,22 +674,20 @@ int ast_channel_trylock(struct ast_channel *chan);
 struct ast_flags {  /* stolen from utils.h */
        unsigned int flags;
 };
-#define ast_test_flag(p,flag)          ({ \
-                                       typeof ((p)->flags) __p = (p)->flags; \
-                                       unsigned int __x = 0; \
-                                       (void) (&__p == &__x); \
-                                       ((p)->flags & (flag)); \
-                                       })
+#if __BYTE_ORDER == __BIG_ENDIAN
+#define SWAP64_32(flags) (((uint64_t)flags << 32) | ((uint64_t)flags >> 32))
+#else
+#define SWAP64_32(flags) (flags)
+#endif
+
+extern uint64_t __unsigned_int_flags_dummy64;
 
-#define ast_set2_flag(p,value,flag)    do { \
+#define ast_test_flag64(p,flag)                ({ \
                                        typeof ((p)->flags) __p = (p)->flags; \
-                                       unsigned int __x = 0; \
+                                       typeof (__unsigned_int_flags_dummy64) __x = 0; \
                                        (void) (&__p == &__x); \
-                                       if (value) \
-                                               (p)->flags |= (flag); \
-                                       else \
-                                               (p)->flags &= ~(flag); \
-                                       } while (0)
+                                       ((p)->flags & SWAP64_32(flag)); \
+                                       })
 
 /* from config.c */