summaryrefslogtreecommitdiff
path: root/libs/androidfw/Util.cpp
diff options
context:
space:
mode:
author ESWAR MAGATAPALLI (xWF) <eswarrao@google.com> 2025-01-08 05:57:41 -0800
committer ESWAR MAGATAPALLI (xWF) <eswarrao@google.com> 2025-01-08 05:57:41 -0800
commit6e4275255688ab4e7a0bc5602f4ba1ee2958cff4 (patch)
tree019cf2f0b57aa5f261ced736d5595a7697b2b034 /libs/androidfw/Util.cpp
parenteb759ec58d1617699afa76f42a0965b41bab0bb2 (diff)
Revert "[res] Optimize few functions for dtoh() as a noop"
Revert submission 31021037 Reason for revert: Droidmonitor created revert due to b/388342212. Will be verifying through ABTD before submission. Reverted changes: /q/submissionid:31021037 Change-Id: Ibd9504f9ea147e3849a5df4b924c44f9880c69c2
Diffstat (limited to 'libs/androidfw/Util.cpp')
-rw-r--r--libs/androidfw/Util.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/libs/androidfw/Util.cpp b/libs/androidfw/Util.cpp
index 86c459fb4647..be55fe8b4bb6 100644
--- a/libs/androidfw/Util.cpp
+++ b/libs/androidfw/Util.cpp
@@ -32,18 +32,13 @@ namespace android {
namespace util {
void ReadUtf16StringFromDevice(const uint16_t* src, size_t len, std::string* out) {
- static constexpr bool kDeviceEndiannessSame = dtohs(0x1001) == 0x1001;
- if constexpr (kDeviceEndiannessSame) {
- *out = Utf16ToUtf8({(const char16_t*)src, strnlen16((const char16_t*)src, len)});
- } else {
- char buf[5];
- while (*src && len != 0) {
- char16_t c = static_cast<char16_t>(dtohs(*src));
- utf16_to_utf8(&c, 1, buf, sizeof(buf));
- out->append(buf, strlen(buf));
- ++src;
- --len;
- }
+ char buf[5];
+ while (*src && len != 0) {
+ char16_t c = static_cast<char16_t>(dtohs(*src));
+ utf16_to_utf8(&c, 1, buf, sizeof(buf));
+ out->append(buf, strlen(buf));
+ ++src;
+ --len;
}
}
@@ -68,10 +63,8 @@ std::string Utf16ToUtf8(StringPiece16 utf16) {
}
std::string utf8;
- utf8.resize_and_overwrite(utf8_length, [&utf16](char* data, size_t size) {
- utf16_to_utf8(utf16.data(), utf16.length(), data, size + 1);
- return size;
- });
+ utf8.resize(utf8_length);
+ utf16_to_utf8(utf16.data(), utf16.length(), &*utf8.begin(), utf8_length + 1);
return utf8;
}