HomePhabricator

Fix and speedup __libcpp_locale_guard on Windows

Description

Fix and speedup __libcpp_locale_guard on Windows

The old implementation assumed the POSIX setlocale() API where the old
locale is returned. On Windows, the _new_ locale is returned. This meant
that __libcpp_locale_guard wasn't resetting the locale on destruction.

The new implementation fixes the above issue and takes advantage of
setlocale(LC_ALL) to reduce the number of calls, and also avoids setting
the locale at all if it's not necessary.

Differential Revision: https://reviews.llvm.org/D59572

Details

Committed
thomasandersonMar 27 2019, 11:09 AM
Differential Revision
D59572: Fix and speedup __libcpp_locale_guard on Windows
Branches
Unknown
Tags
Unknown