os: Pass the FatalError message to OsVendorFatalError

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
This commit is contained in:
Jeremy Huddleston
2012-02-17 12:35:02 -08:00
parent 0bb8a2566d
commit a818b30598
11 changed files with 20 additions and 19 deletions

View File

@@ -593,6 +593,7 @@ void
FatalError(const char *f, ...)
{
va_list args;
va_list args2;
static Bool beenhere = FALSE;
if (beenhere)
@@ -600,22 +601,25 @@ FatalError(const char *f, ...)
else
ErrorF("\nFatal server error:\n");
va_start(args, f);
/* Make a copy for OsVendorFatalError */
va_copy(args2, args);
#ifdef __APPLE__
{
va_list args2;
va_list apple_args;
va_copy(args2, args);
(void) vsnprintf(__crashreporter_info_buff__,
sizeof(__crashreporter_info_buff__), f, args2);
va_end(args2);
va_copy(apple_args, args);
(void)vsnprintf(__crashreporter_info_buff__,
sizeof(__crashreporter_info_buff__), f, apple_args);
va_end(apple_args);
}
#endif
VErrorF(f, args);
va_end(args);
ErrorF("\n");
if (!beenhere)
OsVendorFatalError();
OsVendorFatalError(f, args2);
va_end(args2);
if (!beenhere) {
beenhere = TRUE;
AbortServer();