mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-21 08:28:53 +02:00
Test for localtime_r only after including the right MT enabling CFLAGS
1999-01-11 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * configure.in: Test for localtime_r only after including the right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems). * gdate.c (g_date_set_time): Emit warning, if no localtime_r function is available on thread enabled systems. Define ptm only, if really needed, and assert on it.
This commit is contained in:
committed by
Sebastian Wilhelmi
parent
f4a2520f38
commit
e5e86f8c6c
15
gdate.c
15
gdate.c
@@ -790,15 +790,22 @@ g_date_set_time (GDate *d,
|
||||
GTime time)
|
||||
{
|
||||
time_t t = time;
|
||||
struct tm tm, *ptm;
|
||||
struct tm tm;
|
||||
|
||||
g_return_if_fail (d != NULL);
|
||||
|
||||
#if HAVE_LOCALTIME_R
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
localtime_r (&t, &tm);
|
||||
#else
|
||||
ptm = localtime (&t);
|
||||
memcpy((void *) &tm, (void *) ptm, sizeof(struct tm));
|
||||
# ifdef G_THREADS_ENABLED
|
||||
# warning "the `g_date_set_time' function will not be MT-safe"
|
||||
# warning "because there is no `localtime_r' on your system."
|
||||
# endif
|
||||
{
|
||||
struct tm *ptm = localtime (&t);
|
||||
g_assert (ptm);
|
||||
memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm));
|
||||
}
|
||||
#endif
|
||||
|
||||
d->julian = FALSE;
|
||||
|
Reference in New Issue
Block a user