Skip to content

Commit 1ad472f

Browse files
committed
fix: Add basic_string inline templates to fix args segmentation fault
1 parent a2d190f commit 1ad472f

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

patches/aapt2.patch

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,49 @@ index cae2d0bc16b3..13c5f8fc84e8 100644
1212
#include <binder/TextOutput.h>
1313

1414
#endif
15+
diff --git a/src/base/libs/androidfw/include/androidfw/StringPiece.h b/src/base/libs/androidfw/include/androidfw/StringPiece.h
16+
index 921877dc4982..27e27e1c2b94 100644
17+
--- a/src/base/libs/androidfw/include/androidfw/StringPiece.h
18+
+++ b/src/base/libs/androidfw/include/androidfw/StringPiece.h
19+
@@ -75,6 +75,11 @@ class BasicStringPiece {
20+
bool operator>(const BasicStringPiece<TChar>& rhs) const;
21+
bool operator==(const BasicStringPiece<TChar>& rhs) const;
22+
bool operator!=(const BasicStringPiece<TChar>& rhs) const;
23+
+ // for std::basic_string
24+
+ bool operator<(const std::basic_string<TChar>& rhs) const;
25+
+ bool operator>(const std::basic_string<TChar>& rhs) const;
26+
+ bool operator==(const std::basic_string<TChar>& rhs) const;
27+
+ bool operator!=(const std::basic_string<TChar>& rhs) const;
28+
29+
const_iterator begin() const;
30+
const_iterator end() const;
31+
@@ -256,6 +261,26 @@ inline bool BasicStringPiece<TChar>::operator!=(const BasicStringPiece<TChar>& r
32+
return compare(rhs) != 0;
33+
}
34+
35+
+template <typename TChar>
36+
+inline bool BasicStringPiece<TChar>::operator<(const std::basic_string<TChar>& rhs) const {
37+
+ return compare(BasicStringPiece(rhs)) < 0;
38+
+}
39+
+
40+
+template <typename TChar>
41+
+inline bool BasicStringPiece<TChar>::operator>(const std::basic_string<TChar>& rhs) const {
42+
+ return compare(BasicStringPiece(rhs)) > 0;
43+
+}
44+
+
45+
+template <typename TChar>
46+
+inline bool BasicStringPiece<TChar>::operator==(const std::basic_string<TChar>& rhs) const {
47+
+ return compare(BasicStringPiece(rhs)) == 0;
48+
+}
49+
+
50+
+template <typename TChar>
51+
+inline bool BasicStringPiece<TChar>::operator!=(const std::basic_string<TChar>& rhs) const{
52+
+ return compare(BasicStringPiece(rhs)) != 0;
53+
+}
54+
+
55+
template <typename TChar>
56+
inline typename BasicStringPiece<TChar>::const_iterator BasicStringPiece<TChar>::begin() const {
57+
return data_;
1558
diff --git a/src/base/tools/aapt2/ResourceTable.cpp b/src/base/tools/aapt2/ResourceTable.cpp
1659
index 8ab1493c6ab3..3a855f0f6866 100644
1760
--- a/src/base/tools/aapt2/ResourceTable.cpp

0 commit comments

Comments
 (0)