Make StringPiece to be std::string_view alias
Bug: 237583012
Test: build + boot + UTs
Change-Id: I849831f4466d3b9c7ec842b75256e7fcba77a0c0
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index d0850b8..56d9075 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -646,8 +646,8 @@
return true;
}
-static void FullyQualifyClassName(const StringPiece& package, const StringPiece& attr_ns,
- const StringPiece& attr_name, xml::Element* el) {
+static void FullyQualifyClassName(StringPiece package, StringPiece attr_ns, StringPiece attr_name,
+ xml::Element* el) {
xml::Attribute* attr = el->FindAttribute(attr_ns, attr_name);
if (attr != nullptr) {
if (std::optional<std::string> new_value =
@@ -657,7 +657,7 @@
}
}
-static bool RenameManifestPackage(const StringPiece& package_override, xml::Element* manifest_el) {
+static bool RenameManifestPackage(StringPiece package_override, xml::Element* manifest_el) {
xml::Attribute* attr = manifest_el->FindAttribute({}, "package");
// We've already verified that the manifest element is present, with a package
@@ -665,7 +665,7 @@
CHECK(attr != nullptr);
std::string original_package = std::move(attr->value);
- attr->value = package_override.to_string();
+ attr->value.assign(package_override);
xml::Element* application_el = manifest_el->FindChild({}, "application");
if (application_el != nullptr) {
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index 8d1a647..7180ae6 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -61,12 +61,12 @@
.Build();
}
- std::unique_ptr<xml::XmlResource> Verify(const StringPiece& str) {
+ std::unique_ptr<xml::XmlResource> Verify(StringPiece str) {
return VerifyWithOptions(str, {});
}
- std::unique_ptr<xml::XmlResource> VerifyWithOptions(
- const StringPiece& str, const ManifestFixerOptions& options) {
+ std::unique_ptr<xml::XmlResource> VerifyWithOptions(StringPiece str,
+ const ManifestFixerOptions& options) {
std::unique_ptr<xml::XmlResource> doc = test::BuildXmlDom(str);
ManifestFixer fixer(options);
if (fixer.Consume(mContext.get(), doc.get())) {
diff --git a/tools/aapt2/link/ReferenceLinker.cpp b/tools/aapt2/link/ReferenceLinker.cpp
index f2a93a8..9dadfb2 100644
--- a/tools/aapt2/link/ReferenceLinker.cpp
+++ b/tools/aapt2/link/ReferenceLinker.cpp
@@ -189,8 +189,7 @@
public:
EmptyDeclStack() = default;
- std::optional<xml::ExtractedPackage> TransformPackageAlias(
- const StringPiece& alias) const override {
+ std::optional<xml::ExtractedPackage> TransformPackageAlias(StringPiece alias) const override {
if (alias.empty()) {
return xml::ExtractedPackage{{}, true /*private*/};
}
@@ -206,8 +205,7 @@
: alias_namespaces_(std::move(namespaces)) {
}
- std::optional<xml::ExtractedPackage> TransformPackageAlias(
- const StringPiece& alias) const override {
+ std::optional<xml::ExtractedPackage> TransformPackageAlias(StringPiece alias) const override {
if (alias.empty()) {
return xml::ExtractedPackage{{}, true /*private*/};
}
diff --git a/tools/aapt2/link/TableMerger.cpp b/tools/aapt2/link/TableMerger.cpp
index c9f0964..67a4828 100644
--- a/tools/aapt2/link/TableMerger.cpp
+++ b/tools/aapt2/link/TableMerger.cpp
@@ -66,7 +66,7 @@
// This will merge and mangle resources from a static library. It is assumed that all FileReferences
// have correctly set their io::IFile*.
-bool TableMerger::MergeAndMangle(const android::Source& src, const StringPiece& package_name,
+bool TableMerger::MergeAndMangle(const android::Source& src, StringPiece package_name,
ResourceTable* table) {
bool error = false;
for (auto& package : table->packages) {
@@ -326,8 +326,8 @@
const std::string& package, const FileReference& file_ref) {
StringPiece prefix, entry, suffix;
if (util::ExtractResFilePathParts(*file_ref.path, &prefix, &entry, &suffix)) {
- std::string mangled_entry = NameMangler::MangleEntry(package, entry.to_string());
- std::string newPath = prefix.to_string() + mangled_entry + suffix.to_string();
+ std::string mangled_entry = NameMangler::MangleEntry(package, entry);
+ std::string newPath = (std::string(prefix) += mangled_entry) += suffix;
std::unique_ptr<FileReference> new_file_ref =
util::make_unique<FileReference>(main_table_->string_pool.MakeRef(newPath));
new_file_ref->SetComment(file_ref.GetComment());
diff --git a/tools/aapt2/link/TableMerger.h b/tools/aapt2/link/TableMerger.h
index 2ba2123..37daf42 100644
--- a/tools/aapt2/link/TableMerger.h
+++ b/tools/aapt2/link/TableMerger.h
@@ -61,7 +61,7 @@
// References are made to this ResourceTable for efficiency reasons.
TableMerger(IAaptContext* context, ResourceTable* out_table, const TableMergerOptions& options);
- inline const std::set<std::string>& merged_packages() const {
+ inline const std::set<std::string, std::less<>>& merged_packages() const {
return merged_packages_;
}
@@ -71,7 +71,7 @@
// Merges resources from the given package, mangling the name. This is for static libraries.
// All FileReference values must have their io::IFile set.
- bool MergeAndMangle(const android::Source& src, const android::StringPiece& package,
+ bool MergeAndMangle(const android::Source& src, android::StringPiece package,
ResourceTable* table);
// Merges a compiled file that belongs to this same or empty package.
@@ -84,7 +84,7 @@
ResourceTable* main_table_;
TableMergerOptions options_;
ResourceTablePackage* main_package_;
- std::set<std::string> merged_packages_;
+ std::set<std::string, std::less<>> merged_packages_;
bool MergeImpl(const android::Source& src, ResourceTable* src_table, bool overlay,
bool allow_new);