binpac: Add missing va_end()'s to match va_start()'s.

Probably not an issue on most implementations, but undefined behavior
is scary and it's easy to fix.
This commit is contained in:
Jon Siwek 2013-09-10 11:30:13 -05:00 committed by Tim Wojtulewicz
parent cb524c2fde
commit 5e0f604418

View file

@ -41,7 +41,21 @@ int Output::print(const char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
return print(fmt, ap);
int r = -1;
try
{
r = print(fmt, ap);
}
catch ( ... )
{
va_end(ap);
throw;
}
va_end(ap);
return r;
}
int Output::println(const char* fmt, ...)
@ -49,11 +63,22 @@ int Output::println(const char* fmt, ...)
for ( int i = 0; i < indent(); ++i )
fprintf(fp, "\t");
int r;
va_list ap;
va_start(ap, fmt);
r = print(fmt, ap);
int r = -1;
try
{
r = print(fmt, ap);
}
catch ( ... )
{
va_end(ap);
throw;
}
va_end(ap);
fprintf(fp, "\n");
return r;
}