]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Thu Jul 24 13:02:17 EDT 2008 Pekka Pessi <first.last@nokia.com>
authorMichael Jerris <mike@jerris.com>
Tue, 12 Aug 2008 17:04:16 +0000 (17:04 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 12 Aug 2008 17:04:16 +0000 (17:04 +0000)
  * sofia-sip/su_tagarg.h: if va_copy is missing, fall back to __va_copy or memcpy

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9269 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h

index 9eca0233e52028e1ea452d8fca3886d401997733..c255c773709fd9d506228fd410569c07e8722e27 100644 (file)
@@ -1 +1 @@
-Tue Aug 12 13:03:36 EDT 2008
+Tue Aug 12 13:04:10 EDT 2008
index 6c7fec515036ac597ff139c2fd5a1bddfc17baa4..d904c65974de5264de0ea0b39d42c3045d289db5 100644 (file)
@@ -82,6 +82,14 @@ typedef struct {
   va_list ap;
 } ta_list;
 
+#if defined(va_copy)
+#define su_va_copy(dst, src) va_copy((dst), (src))
+#elif defined(__va_copy)
+#define su_va_copy(dst, src) __va_copy((dst), (src))
+#else
+#define su_va_copy(dst, src) (memcpy(&(dst), &(src), sizeof (va_list)))
+#endif
+
 /**Macro initializing a ta_list object.
  *
  * The ta_start() macro initializes @a ta for subsequent use by ta_args(),
@@ -143,7 +151,7 @@ typedef struct {
        ta_start__tag != tag_null &&                                    \
        ta_start__tag != tag_next) {                                    \
       va_list ta_start__ap;                                            \
-      va_copy(ta_start__ap, (ta).ap);                                  \
+      su_va_copy(ta_start__ap, (ta).ap);                               \
       (ta).tl[1].t_tag = tag_next;                                     \
       (ta).tl[1].t_value = (tag_value_t)tl_vlist(ta_start__ap);                \
       va_end(ta_start__ap);                                            \