foxygit / doom Log in
commit b34294b67473e8d3ad4b8204327e03d91bcd6214
Author:     Fabian Greffrath <fabian@greffrath.com>
AuthorDate: Thu Mar 26 18:26:32 2015 +0100
Commit:     Fabian Greffrath <fabian@greffrath.com>
CommitDate: Thu Mar 26 18:26:32 2015 +0100

    Add a wrapper with "void (void)" signature around G_CheckDemoStatus

    This is meant to be passed over to I_AtExit() which expects an
    argument of void type. It thus prevents undefined behaviour because
    of the different signature of G_CheckDemoStatus() which is of boolean
    type.

    Fixes #519
---
 src/doom/d_main.c   | 7 ++++++-
 src/strife/d_main.c | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/doom/d_main.c b/src/doom/d_main.c
index ca722dc6..eb9454ac 100644
--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -1151,6 +1151,11 @@ static void LoadIwadDeh(void)
     }
 }

+static void G_CheckDemoStatusAtExit (void)
+{
+    G_CheckDemoStatus();
+}
+
 //
 // D_DoomMain
 //
@@ -1498,7 +1503,7 @@ void D_DoomMain (void)
         printf("Playing demo %s.\n", file);
     }

-    I_AtExit((atexit_func_t) G_CheckDemoStatus, true);
+    I_AtExit(G_CheckDemoStatusAtExit, true);

     // Generate the WAD hash table.  Speed things up a bit.
     W_GenerateHashTable();
diff --git a/src/strife/d_main.c b/src/strife/d_main.c
index 35d2c908..186ba28b 100644
--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -1285,6 +1285,11 @@ void D_IntroTick(void)
 //
 //=============================================================================

+static void G_CheckDemoStatusAtExit (void)
+{
+    G_CheckDemoStatus();
+}
+
 //
 // D_DoomMain
 //
@@ -1634,7 +1639,7 @@ void D_DoomMain (void)
         printf("Playing demo %s.\n", file);
     }

-    I_AtExit((atexit_func_t) G_CheckDemoStatus, true);
+    I_AtExit(G_CheckDemoStatusAtExit, true);

     // Generate the WAD hash table.  Speed things up a bit.