diff options
author | Jilles Tjoelker <jilles@FreeBSD.org> | 2017-10-22 20:01:07 +0000 |
---|---|---|
committer | Jilles Tjoelker <jilles@FreeBSD.org> | 2017-10-22 20:01:07 +0000 |
commit | 1f04a45950ad1bf0dd52f8067d3b76afa3be8355 (patch) | |
tree | 5f0df76443783d29352e052ddd4e2d33102278e7 /include | |
parent | 7421ff0751fadff2b6f5154f43067b869509603f (diff) | |
download | src-1f04a45950ad1bf0dd52f8067d3b76afa3be8355.tar.gz src-1f04a45950ad1bf0dd52f8067d3b76afa3be8355.zip |
libc: Do not refer to _DefaultRuneLocale in ctype inlines
Referring to _DefaultRuneLocale causes this >4KB structure to be copied to
all executables that use <ctype.h> inlines (except PIE executables).
This only affects the case where thread local storage is available.
_CurrentRuneLocale cannot be NULL, so the check can be removed entirely.
_DefaultRuneLocale needs to remain available for now since libc++ uses it.
The __isctype inline in include/_ctype.h also refers to _DefaultRuneLocale
and remains available because it may still be used by third party software.
Reviewed by: bdrewery, theraven
Differential Revision: https://reviews.freebsd.org/D10363
Notes
Notes:
svn path=/head/; revision=324866
Diffstat (limited to 'include')
-rw-r--r-- | include/runetype.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/include/runetype.h b/include/runetype.h index 6aad915b5604..dcbb226bb2d8 100644 --- a/include/runetype.h +++ b/include/runetype.h @@ -95,9 +95,7 @@ static __inline const _RuneLocale *__getCurrentRuneLocale(void) if (_ThreadRuneLocale) return _ThreadRuneLocale; - if (_CurrentRuneLocale) - return _CurrentRuneLocale; - return &_DefaultRuneLocale; + return _CurrentRuneLocale; } #endif /* __NO_TLS || __RUNETYPE_INTERNAL */ #define _CurrentRuneLocale (__getCurrentRuneLocale()) |