mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-10-02 11:56:38 +02:00
Wrapping atexit() is a bad idea on Windows, where the EXE and each DLL
2005-08-31 Tor Lillqvist <tml@novell.com> * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where the EXE and each DLL have their own atexit function chains. #define g_atexit as atexit instead. This means it has a better chance of doing what the caller wants. For instance, gtkhtml calls g_atexit() registering a function in gtkhtml itself. This caused a crash when g_atexit() was implemented as a function in the GLib DLL. The gtkhtml DLL was already unloaded by the time the GLib DLL got unloaded. * glib/gutils.c: #undef the #define mentioned above, to also get a real g_atexit() into the DLL for backward compatibility.
This commit is contained in:
committed by
Tor Lillqvist
parent
dca0012a23
commit
a27f237964
@@ -208,6 +208,10 @@ g_memmove (gpointer dest,
|
||||
}
|
||||
#endif /* !HAVE_MEMMOVE && !HAVE_WORKING_BCOPY */
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#undef g_atexit
|
||||
#endif
|
||||
|
||||
/**
|
||||
* g_atexit:
|
||||
* @func: the function to call on normal program termination.
|
||||
|
Reference in New Issue
Block a user