112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
releaseMutex(void)
{
[mutex release];
}
#endif
#ifdef OF_WINDOWS
static __time64_t (*func__mktime64)(struct tm *);
#endif
#ifdef HAVE_GMTIME_R
# define GMTIME_RET(field) \
OFTimeInterval timeInterval = self.timeIntervalSince1970; \
time_t seconds = (time_t)timeInterval; \
struct tm tm; \
|
|
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
releaseMutex(void)
{
[mutex release];
}
#endif
#ifdef OF_WINDOWS
static __time64_t (*_mktime64FuncPtr)(struct tm *);
#endif
#ifdef HAVE_GMTIME_R
# define GMTIME_RET(field) \
OFTimeInterval timeInterval = self.timeIntervalSince1970; \
time_t seconds = (time_t)timeInterval; \
struct tm tm; \
|
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
|
defined(OF_HAVE_THREADS)
mutex = [[OFMutex alloc] init];
atexit(releaseMutex);
#endif
#ifdef OF_WINDOWS
if ((module = LoadLibrary("msvcrt.dll")) != NULL)
func__mktime64 = (__time64_t (*)(struct tm *))
GetProcAddress(module, "_mktime64");
#endif
#if defined(OF_OBJFW_RUNTIME) && UINTPTR_MAX == UINT64_MAX
dateTag = objc_registerTaggedPointerClass([OFTaggedPointerDate class]);
#endif
}
|
|
|
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
|
defined(OF_HAVE_THREADS)
mutex = [[OFMutex alloc] init];
atexit(releaseMutex);
#endif
#ifdef OF_WINDOWS
if ((module = LoadLibrary("msvcrt.dll")) != NULL)
_mktime64FuncPtr = (__time64_t (*)(struct tm *))
GetProcAddress(module, "_mktime64");
#endif
#if defined(OF_OBJFW_RUNTIME) && UINTPTR_MAX == UINT64_MAX
dateTag = objc_registerTaggedPointerClass([OFTaggedPointerDate class]);
#endif
}
|
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
|
if (OFStrPTime(UTF8String, format.UTF8String, &tm, &tz) !=
UTF8String + string.UTF8StringLength)
@throw [OFInvalidFormatException exception];
if (tz == SHRT_MAX) {
#ifdef OF_WINDOWS
if (func__mktime64 != NULL) {
if ((seconds = func__mktime64(&tm)) == -1)
@throw [OFInvalidFormatException exception];
} else {
#endif
if ((seconds = mktime(&tm)) == -1)
@throw [OFInvalidFormatException exception];
#ifdef OF_WINDOWS
}
|
|
|
|
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
|
if (OFStrPTime(UTF8String, format.UTF8String, &tm, &tz) !=
UTF8String + string.UTF8StringLength)
@throw [OFInvalidFormatException exception];
if (tz == SHRT_MAX) {
#ifdef OF_WINDOWS
if (_mktime64FuncPtr != NULL) {
if ((seconds = _mktime64FuncPtr(&tm)) == -1)
@throw [OFInvalidFormatException exception];
} else {
#endif
if ((seconds = mktime(&tm)) == -1)
@throw [OFInvalidFormatException exception];
#ifdef OF_WINDOWS
}
|