Skip to content

Commit 3cc9d75

Browse files
committed
[NFC] Gather strto*_l stubs together.
Instead of putting the stubs alongside the redefinitions in each platform preprocessor section, split these out, in anticipation for consolidation in the next commit.
1 parent 311482d commit 3cc9d75

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

stdlib/public/stubs/Stubs.cpp

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -355,51 +355,61 @@ static bool swift_stringIsSignalingNaN(const char *nptr) {
355355
static double swift_strtod_l(const char *nptr, char **endptr, locale_t loc) {
356356
return strtod(nptr, endptr);
357357
}
358+
#elif defined(__ANDROID_API__) && __ANDROID_API__ < 26
359+
static double swift_strtod_l(const char *nptr, char **endptr, locale_t loc) {
360+
return strtod(nptr, endptr);
361+
}
362+
#elif defined(_WIN32)
363+
static double swift_strtod_l(const char *nptr, char **endptr, locale_t loc) {
364+
return _strtod_l(nptr, endptr, getCLocale());
365+
}
366+
#endif
358367

368+
#if defined(__OpenBSD__)
369+
static float swift_strtof_l(const char *nptr, char **endptr, locale_t loc) {
370+
return strtof(nptr, endptr);
371+
}
372+
#elif defined(__ANDROID_API__) && __ANDROID_API__ < 26
359373
static float swift_strtof_l(const char *nptr, char **endptr, locale_t loc) {
360374
return strtof(nptr, endptr);
361375
}
376+
#elif defined(_WIN32)
377+
static float swift_strtof_l(const char *nptr, char **endptr, locale_t loc) {
378+
return _strtof_l(nptr, endptr, getCLocale());
379+
}
380+
#endif
362381

382+
#if defined(__OpenBSD__)
363383
static long double swift_strtold_l(const char *nptr, char **endptr,
364384
locale_t loc) {
365385
return strtold(nptr, endptr);
366386
}
387+
#elif defined(__ANDROID_API__) && __ANDROID_API__ < 21
388+
static long double swift_strtold_l(const char *nptr, char **endptr,
389+
locale_t loc) {
390+
return strtod(nptr, endptr);
391+
}
392+
#elif defined(_WIN32)
393+
static long double swift_strtold_l(const char *nptr, char **endptr,
394+
locale_t loc) {
395+
return _strtod_l(nptr, endptr, getCLocale());
396+
}
397+
#endif
367398

399+
#if defined(__OpenBSD__) || defined(_WIN32)
368400
#define strtod_l swift_strtod_l
369401
#define strtof_l swift_strtof_l
370402
#define strtold_l swift_strtold_l
371403
#elif defined(__ANDROID__)
372404
#if __ANDROID_API__ < 21 // Introduced in Android API 21 - L
373-
static inline long double swift_strtold_l(const char *nptr, char **endptr,
374-
locale_t) {
375-
return strtod(nptr, endptr);
376-
}
377405
#define strtold_l swift_strtold_l
378406
#endif
379407

380408
#if __ANDROID_API__ < 26 // Introduced in Android API 26 - O
381-
static double swift_strtod_l(const char *nptr, char **endptr, locale_t loc) {
382-
return strtod(nptr, endptr);
383-
}
384-
static float swift_strtof_l(const char *nptr, char **endptr, locale_t loc) {
385-
return strtof(nptr, endptr);
386-
}
387409
#define strtod_l swift_strtod_l
388410
#define strtof_l swift_strtof_l
389411
#endif
390412
#elif defined(_WIN32)
391-
static double swift_strtod_l(const char *nptr, char **endptr, locale_t loc) {
392-
return _strtod_l(str, &end, getCLocale());
393-
}
394-
395-
static float swift_strtof_l(const char *nptr, char **endptr, locale_t loc) {
396-
return _strtof_l(str, &end, getCLocale());
397-
}
398-
399-
static long double swift_strtold_l(const char *nptr, char **endptr,
400-
locale_t loc) {
401-
return _strtod_l(str, &end, getCLocale());
402-
}
403413
#define strtod_l swift_strtod_l
404414
#define strtof_l swift_strtof_l
405415
#define strtold_l swift_strtold_l

0 commit comments

Comments
 (0)