diff options
author | Mikhail Kurinnoi/AI Compiler Lab /SRR/Staff Engineer/Samsung Electronics <m.kurinnoi@samsung.com> | 2020-06-26 01:30:09 +0300 |
---|---|---|
committer | Woongsuk Cho <ws77.cho@samsung.com> | 2021-01-29 11:37:41 +0900 |
commit | b3e2e12d3748ee733f0bd47943a9a3576c9301b3 (patch) | |
tree | 29bec6b145b0215259810ddac64aa88849afbf92 /src/binder/inc/applicationcontext.hpp | |
parent | e03324d772bbe880f2c01bfc743e34c1a4f77d3d (diff) | |
download | coreclr-tizen_5.5_tv.tar.gz coreclr-tizen_5.5_tv.tar.bz2 coreclr-tizen_5.5_tv.zip |
Fix TPA map hash calculation. (#288)tizen_5.5_tv
* Fix TPA map hash calculation.
The point of issue is "the Turkish-I Problem". After locale changed, towupper() provide another result for "i" and different hash are calculated in case if file name have "i" letter.
* Regression test for #37910
Diffstat (limited to 'src/binder/inc/applicationcontext.hpp')
-rw-r--r-- | src/binder/inc/applicationcontext.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/binder/inc/applicationcontext.hpp b/src/binder/inc/applicationcontext.hpp index 83893f33ce..f315b32c0d 100644 --- a/src/binder/inc/applicationcontext.hpp +++ b/src/binder/inc/applicationcontext.hpp @@ -71,8 +71,12 @@ namespace BINDER_SPACE key = e.m_wszSimpleName; return key; } - static count_t Hash(const key_t &str) { return HashiString(str); } - static BOOL Equals(const key_t &lhs, const key_t &rhs) { LIMITED_METHOD_CONTRACT; return (_wcsicmp(lhs, rhs) == 0); } + static count_t Hash(const key_t &str) + { + SString ssKey(SString::Literal, str); + return ssKey.HashCaseInsensitive(); + } + static BOOL Equals(const key_t &lhs, const key_t &rhs) { LIMITED_METHOD_CONTRACT; return (SString::_wcsicmp(lhs, rhs) == 0); } void OnDestructPerEntryCleanupAction(const SimpleNameToFileNameMapEntry & e) { |