diff options
author | Adam Lesinski <adamlesinski@google.com> | 2016-01-11 13:10:24 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2016-01-13 18:48:24 -0800 |
commit | 52364f7ae31716d7827ea8f8566f4a28bd30a921 (patch) | |
tree | ce146fb6dc5e9f9b1166964b77273b6481f8258b /tools/aapt2/StringPool.cpp | |
parent | d901155166983adde84d9da2a6b265371191068a (diff) |
AAPT2: Variety of small fixes to get the build working
- Add option to rename package in AndroidManifest.xml
- Support default versionName and versionCode
- Accept True and False as valid booleans
Change-Id: I400e350b9dcd0fd1c197d1929144299c7823617d
Diffstat (limited to 'tools/aapt2/StringPool.cpp')
-rw-r--r-- | tools/aapt2/StringPool.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/aapt2/StringPool.cpp b/tools/aapt2/StringPool.cpp index 8552f470b123..aadb00b6be2a 100644 --- a/tools/aapt2/StringPool.cpp +++ b/tools/aapt2/StringPool.cpp @@ -14,9 +14,9 @@ * limitations under the License. */ +#include "StringPool.h" #include "util/BigBuffer.h" #include "util/StringPiece.h" -#include "StringPool.h" #include "util/Util.h" #include <algorithm> @@ -342,7 +342,14 @@ bool StringPool::flatten(BigBuffer* out, const StringPool& pool, bool utf8) { // Encode the actual UTF16 string length. data = encodeLength(data, entry->value.size()); - strncpy16(data, entry->value.data(), entry->value.size()); + const size_t byteLength = entry->value.size() * sizeof(char16_t); + + // NOTE: For some reason, strncpy16(data, entry->value.data(), entry->value.size()) + // truncates the string. + memcpy(data, entry->value.data(), byteLength); + + // The null-terminating character is already here due to the block of data being set + // to 0s on allocation. } } |