]> git.jsancho.org Git - lugaru.git/commitdiff
Fixed va_list assignments.
authorRyan C. Gordon <icculus@icculus.org>
Sat, 31 Oct 2009 19:27:23 +0000 (15:27 -0400)
committerRyan C. Gordon <icculus@icculus.org>
Sat, 31 Oct 2009 19:27:23 +0000 (15:27 -0400)
Source/pack.c
Source/unpack.c

index 14fc023044442e044a865a50986be07aa5e9c862..e0b26c9fa592b651940d2c11dfe30d83a67032a7 100644 (file)
@@ -36,9 +36,11 @@ extern void vspackf(void *buffer, const char *format, va_list args)
     BinIOInitFormatCursor(&cursor, format);
 
     context.buffer = (unsigned char *)buffer;
-    context.args = args;
-    
+    va_copy(context.args, args);
+
     while (BinIONextChar(&context, &cursor, BinIOPack)) {}
+
+    va_end(context.args);
 }
 
 extern void vfpackf(FILE *file, const char *format, va_list args)
index a2cc44d9ebd2ae695a1b19c7cc3910701731189d..8568b89e484b0f89e170694af4c470553907ab4a 100644 (file)
@@ -36,9 +36,11 @@ void vsunpackf(const void *buffer, const char *format, va_list args)
     BinIOInitFormatCursor(&cursor, format);
     
     context.data = (const unsigned char*)buffer;
-    context.args = args;
+    va_copy(context.args, args);
     
     while (BinIONextChar(&context, &cursor, BinIOUnpack)) {}
+
+    va_end(context.args);
 }
 
 void vfunpackf(FILE *file, const char *format, va_list args)