Make StringPiece to be std::string_view alias
Bug: 237583012
Test: build + boot + UTs
Change-Id: I849831f4466d3b9c7ec842b75256e7fcba77a0c0
diff --git a/tools/aapt2/cmd/ApkInfo.cpp b/tools/aapt2/cmd/ApkInfo.cpp
index 697b110..3c0831c 100644
--- a/tools/aapt2/cmd/ApkInfo.cpp
+++ b/tools/aapt2/cmd/ApkInfo.cpp
@@ -64,7 +64,7 @@
Usage(&std::cerr);
return 1;
}
- const StringPiece& path = args[0];
+ StringPiece path = args[0];
std::unique_ptr<LoadedApk> apk = LoadedApk::LoadApkFromPath(path, diag_);
if (!apk) {
return 1;
diff --git a/tools/aapt2/cmd/Command.cpp b/tools/aapt2/cmd/Command.cpp
index b1452fa..514651e 100644
--- a/tools/aapt2/cmd/Command.cpp
+++ b/tools/aapt2/cmd/Command.cpp
@@ -33,7 +33,7 @@
namespace aapt {
-std::string GetSafePath(const StringPiece& arg) {
+std::string GetSafePath(StringPiece arg) {
#ifdef _WIN32
// If the path exceeds the maximum path length for Windows, encode the path using the
// extended-length prefix
@@ -47,63 +47,62 @@
return path8;
#else
- return arg.to_string();
+ return std::string(arg);
#endif
}
-void Command::AddRequiredFlag(const StringPiece& name, const StringPiece& description,
- std::string* value, uint32_t flags) {
- auto func = [value, flags](const StringPiece& arg) -> bool {
- *value = (flags & Command::kPath) ? GetSafePath(arg) : arg.to_string();
+void Command::AddRequiredFlag(StringPiece name, StringPiece description, std::string* value,
+ uint32_t flags) {
+ auto func = [value, flags](StringPiece arg) -> bool {
+ *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
return true;
};
flags_.emplace_back(Flag(name, description, /* required */ true, /* num_args */ 1, func));
}
-void Command::AddRequiredFlagList(const StringPiece& name, const StringPiece& description,
+void Command::AddRequiredFlagList(StringPiece name, StringPiece description,
std::vector<std::string>* value, uint32_t flags) {
- auto func = [value, flags](const StringPiece& arg) -> bool {
- value->push_back((flags & Command::kPath) ? GetSafePath(arg) : arg.to_string());
+ auto func = [value, flags](StringPiece arg) -> bool {
+ value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
return true;
};
flags_.emplace_back(Flag(name, description, /* required */ true, /* num_args */ 1, func));
}
-void Command::AddOptionalFlag(const StringPiece& name, const StringPiece& description,
+void Command::AddOptionalFlag(StringPiece name, StringPiece description,
std::optional<std::string>* value, uint32_t flags) {
- auto func = [value, flags](const StringPiece& arg) -> bool {
- *value = (flags & Command::kPath) ? GetSafePath(arg) : arg.to_string();
+ auto func = [value, flags](StringPiece arg) -> bool {
+ *value = (flags & Command::kPath) ? GetSafePath(arg) : std::string(arg);
return true;
};
flags_.emplace_back(Flag(name, description, /* required */ false, /* num_args */ 1, func));
}
-void Command::AddOptionalFlagList(const StringPiece& name, const StringPiece& description,
+void Command::AddOptionalFlagList(StringPiece name, StringPiece description,
std::vector<std::string>* value, uint32_t flags) {
- auto func = [value, flags](const StringPiece& arg) -> bool {
- value->push_back((flags & Command::kPath) ? GetSafePath(arg) : arg.to_string());
+ auto func = [value, flags](StringPiece arg) -> bool {
+ value->push_back((flags & Command::kPath) ? GetSafePath(arg) : std::string(arg));
return true;
};
flags_.emplace_back(Flag(name, description, /* required */ false, /* num_args */ 1, func));
}
-void Command::AddOptionalFlagList(const StringPiece& name, const StringPiece& description,
+void Command::AddOptionalFlagList(StringPiece name, StringPiece description,
std::unordered_set<std::string>* value) {
- auto func = [value](const StringPiece& arg) -> bool {
- value->insert(arg.to_string());
+ auto func = [value](StringPiece arg) -> bool {
+ value->emplace(arg);
return true;
};
flags_.emplace_back(Flag(name, description, /* required */ false, /* num_args */ 1, func));
}
-void Command::AddOptionalSwitch(const StringPiece& name, const StringPiece& description,
- bool* value) {
- auto func = [value](const StringPiece& arg) -> bool {
+void Command::AddOptionalSwitch(StringPiece name, StringPiece description, bool* value) {
+ auto func = [value](StringPiece arg) -> bool {
*value = true;
return true;
};
@@ -120,8 +119,8 @@
}
}
-void Command::SetDescription(const StringPiece& description) {
- description_ = description.to_string();
+void Command::SetDescription(StringPiece description) {
+ description_ = std::string(description);
}
void Command::Usage(std::ostream* out) {
@@ -183,7 +182,7 @@
std::vector<std::string> file_args;
for (size_t i = 0; i < args.size(); i++) {
- const StringPiece& arg = args[i];
+ StringPiece arg = args[i];
if (*(arg.data()) != '-') {
// Continue parsing as the subcommand if the first argument matches one of the subcommands
if (i == 0) {
diff --git a/tools/aapt2/cmd/Command.h b/tools/aapt2/cmd/Command.h
index 8678cda..1416e98 100644
--- a/tools/aapt2/cmd/Command.h
+++ b/tools/aapt2/cmd/Command.h
@@ -30,13 +30,10 @@
class Command {
public:
- explicit Command(const android::StringPiece& name)
- : name_(name.to_string()), full_subcommand_name_(name.to_string()){};
+ explicit Command(android::StringPiece name) : name_(name), full_subcommand_name_(name){};
- explicit Command(const android::StringPiece& name, const android::StringPiece& short_name)
- : name_(name.to_string()),
- short_name_(short_name.to_string()),
- full_subcommand_name_(name.to_string()){};
+ explicit Command(android::StringPiece name, android::StringPiece short_name)
+ : name_(name), short_name_(short_name), full_subcommand_name_(name){};
Command(Command&&) = default;
Command& operator=(Command&&) = default;
@@ -52,30 +49,26 @@
kPath = 1 << 0,
};
- void AddRequiredFlag(const android::StringPiece& name, const android::StringPiece& description,
+ void AddRequiredFlag(android::StringPiece name, android::StringPiece description,
std::string* value, uint32_t flags = 0);
- void AddRequiredFlagList(const android::StringPiece& name,
- const android::StringPiece& description, std::vector<std::string>* value,
- uint32_t flags = 0);
+ void AddRequiredFlagList(android::StringPiece name, android::StringPiece description,
+ std::vector<std::string>* value, uint32_t flags = 0);
- void AddOptionalFlag(const android::StringPiece& name, const android::StringPiece& description,
+ void AddOptionalFlag(android::StringPiece name, android::StringPiece description,
std::optional<std::string>* value, uint32_t flags = 0);
- void AddOptionalFlagList(const android::StringPiece& name,
- const android::StringPiece& description, std::vector<std::string>* value,
- uint32_t flags = 0);
+ void AddOptionalFlagList(android::StringPiece name, android::StringPiece description,
+ std::vector<std::string>* value, uint32_t flags = 0);
- void AddOptionalFlagList(const android::StringPiece& name,
- const android::StringPiece& description,
+ void AddOptionalFlagList(android::StringPiece name, android::StringPiece description,
std::unordered_set<std::string>* value);
- void AddOptionalSwitch(const android::StringPiece& name, const android::StringPiece& description,
- bool* value);
+ void AddOptionalSwitch(android::StringPiece name, android::StringPiece description, bool* value);
void AddOptionalSubcommand(std::unique_ptr<Command>&& subcommand, bool experimental = false);
- void SetDescription(const android::StringPiece& name);
+ void SetDescription(android::StringPiece name);
// Prints the help menu of the command.
void Usage(std::ostream* out);
@@ -90,17 +83,21 @@
private:
struct Flag {
- explicit Flag(const android::StringPiece& name, const android::StringPiece& description,
+ explicit Flag(android::StringPiece name, android::StringPiece description,
const bool is_required, const size_t num_args,
- std::function<bool(const android::StringPiece& value)>&& action)
- : name(name.to_string()), description(description.to_string()), is_required(is_required),
- num_args(num_args), action(std::move(action)) {}
+ std::function<bool(android::StringPiece value)>&& action)
+ : name(name),
+ description(description),
+ is_required(is_required),
+ num_args(num_args),
+ action(std::move(action)) {
+ }
const std::string name;
const std::string description;
const bool is_required;
const size_t num_args;
- const std::function<bool(const android::StringPiece& value)> action;
+ const std::function<bool(android::StringPiece value)> action;
bool found = false;
};
diff --git a/tools/aapt2/cmd/Compile.cpp b/tools/aapt2/cmd/Compile.cpp
index 0409f73..03f9715 100644
--- a/tools/aapt2/cmd/Compile.cpp
+++ b/tools/aapt2/cmd/Compile.cpp
@@ -125,8 +125,12 @@
const android::Source res_path =
options.source_path ? StringPiece(options.source_path.value()) : StringPiece(path);
- return ResourcePathData{res_path, dir_str.to_string(), name.to_string(),
- extension.to_string(), config_str.to_string(), config};
+ return ResourcePathData{res_path,
+ std::string(dir_str),
+ std::string(name),
+ std::string(extension),
+ std::string(config_str),
+ config};
}
static std::string BuildIntermediateContainerFilename(const ResourcePathData& data) {
@@ -279,7 +283,7 @@
return true;
}
-static bool WriteHeaderAndDataToWriter(const StringPiece& output_path, const ResourceFile& file,
+static bool WriteHeaderAndDataToWriter(StringPiece output_path, const ResourceFile& file,
io::KnownSizeInputStream* in, IArchiveWriter* writer,
android::IDiagnostics* diag) {
TRACE_CALL();
@@ -311,7 +315,7 @@
return true;
}
-static bool FlattenXmlToOutStream(const StringPiece& output_path, const xml::XmlResource& xmlres,
+static bool FlattenXmlToOutStream(StringPiece output_path, const xml::XmlResource& xmlres,
ContainerWriter* container_writer, android::IDiagnostics* diag) {
pb::internal::CompiledFile pb_compiled_file;
SerializeCompiledFileToPb(xmlres.file, &pb_compiled_file);
@@ -538,7 +542,7 @@
if (context->IsVerbose()) {
// For debugging only, use the legacy PNG cruncher and compare the resulting file sizes.
// This will help catch exotic cases where the new code may generate larger PNGs.
- std::stringstream legacy_stream(content.to_string());
+ std::stringstream legacy_stream{std::string(content)};
android::BigBuffer legacy_buffer(4096);
Png png(context->GetDiagnostics());
if (!png.process(path_data.source, &legacy_stream, &legacy_buffer, {})) {
diff --git a/tools/aapt2/cmd/Convert.cpp b/tools/aapt2/cmd/Convert.cpp
index 52e113e..612e3a6 100644
--- a/tools/aapt2/cmd/Convert.cpp
+++ b/tools/aapt2/cmd/Convert.cpp
@@ -387,7 +387,7 @@
}
Context context;
- const StringPiece& path = args[0];
+ StringPiece path = args[0];
unique_ptr<LoadedApk> apk = LoadedApk::LoadApkFromPath(path, context.GetDiagnostics());
if (apk == nullptr) {
context.GetDiagnostics()->Error(android::DiagMessage(path) << "failed to load APK");
diff --git a/tools/aapt2/cmd/Diff.cpp b/tools/aapt2/cmd/Diff.cpp
index 423e939..5bfc732 100644
--- a/tools/aapt2/cmd/Diff.cpp
+++ b/tools/aapt2/cmd/Diff.cpp
@@ -78,7 +78,7 @@
SymbolTable symbol_table_;
};
-static void EmitDiffLine(const android::Source& source, const StringPiece& message) {
+static void EmitDiffLine(const android::Source& source, StringPiece message) {
std::cerr << source << ": " << message << "\n";
}
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index a8d2299..97404fc 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -126,8 +126,8 @@
return compilation_package_;
}
- void SetCompilationPackage(const StringPiece& package_name) {
- compilation_package_ = package_name.to_string();
+ void SetCompilationPackage(StringPiece package_name) {
+ compilation_package_ = std::string(package_name);
}
uint8_t GetPackageId() override {
@@ -240,9 +240,9 @@
IAaptContext* context_;
};
-static bool FlattenXml(IAaptContext* context, const xml::XmlResource& xml_res,
- const StringPiece& path, bool keep_raw_values, bool utf16,
- OutputFormat format, IArchiveWriter* writer) {
+static bool FlattenXml(IAaptContext* context, const xml::XmlResource& xml_res, StringPiece path,
+ bool keep_raw_values, bool utf16, OutputFormat format,
+ IArchiveWriter* writer) {
TRACE_CALL();
if (context->IsVerbose()) {
context->GetDiagnostics()->Note(android::DiagMessage(path)
@@ -262,8 +262,8 @@
}
io::BigBufferInputStream input_stream(&buffer);
- return io::CopyInputStreamToArchive(context, &input_stream, path.to_string(),
- ArchiveEntry::kCompress, writer);
+ return io::CopyInputStreamToArchive(context, &input_stream, path, ArchiveEntry::kCompress,
+ writer);
} break;
case OutputFormat::kProto: {
@@ -272,8 +272,7 @@
SerializeXmlOptions options;
options.remove_empty_text_nodes = (path == kAndroidManifestPath);
SerializeXmlResourceToPb(xml_res, &pb_node);
- return io::CopyProtoToArchive(context, &pb_node, path.to_string(), ArchiveEntry::kCompress,
- writer);
+ return io::CopyProtoToArchive(context, &pb_node, path, ArchiveEntry::kCompress, writer);
} break;
}
return false;
@@ -329,13 +328,13 @@
};
template <typename T>
-uint32_t GetCompressionFlags(const StringPiece& str, T options) {
+uint32_t GetCompressionFlags(StringPiece str, T options) {
if (options.do_not_compress_anything) {
return 0;
}
- if (options.regex_to_not_compress
- && std::regex_search(str.to_string(), options.regex_to_not_compress.value())) {
+ if (options.regex_to_not_compress &&
+ std::regex_search(str.begin(), str.end(), options.regex_to_not_compress.value())) {
return 0;
}
@@ -1176,7 +1175,7 @@
return bcp47tag;
}
- std::unique_ptr<IArchiveWriter> MakeArchiveWriter(const StringPiece& out) {
+ std::unique_ptr<IArchiveWriter> MakeArchiveWriter(StringPiece out) {
if (options_.output_to_directory) {
return CreateDirectoryArchiveWriter(context_->GetDiagnostics(), out);
} else {
@@ -1212,8 +1211,8 @@
return false;
}
- bool WriteJavaFile(ResourceTable* table, const StringPiece& package_name_to_generate,
- const StringPiece& out_package, const JavaClassGeneratorOptions& java_options,
+ bool WriteJavaFile(ResourceTable* table, StringPiece package_name_to_generate,
+ StringPiece out_package, const JavaClassGeneratorOptions& java_options,
const std::optional<std::string>& out_text_symbols_path = {}) {
if (!options_.generate_java_class_path && !out_text_symbols_path) {
return true;
@@ -2473,14 +2472,14 @@
for (std::string& extra_package : extra_java_packages_) {
// A given package can actually be a colon separated list of packages.
for (StringPiece package : util::Split(extra_package, ':')) {
- options_.extra_java_packages.insert(package.to_string());
+ options_.extra_java_packages.emplace(package);
}
}
if (product_list_) {
for (StringPiece product : util::Tokenize(product_list_.value(), ',')) {
if (product != "" && product != "default") {
- options_.products.insert(product.to_string());
+ options_.products.emplace(product);
}
}
}
diff --git a/tools/aapt2/cmd/Optimize.cpp b/tools/aapt2/cmd/Optimize.cpp
index 042926c..9c1a2f6 100644
--- a/tools/aapt2/cmd/Optimize.cpp
+++ b/tools/aapt2/cmd/Optimize.cpp
@@ -370,8 +370,8 @@
if (!kept_artifacts_.empty()) {
for (const std::string& artifact_str : kept_artifacts_) {
- for (const StringPiece& artifact : util::Tokenize(artifact_str, ',')) {
- options_.kept_artifacts.insert(artifact.to_string());
+ for (StringPiece artifact : util::Tokenize(artifact_str, ',')) {
+ options_.kept_artifacts.emplace(artifact);
}
}
}
@@ -403,7 +403,7 @@
if (target_densities_) {
// Parse the target screen densities.
- for (const StringPiece& config_str : util::Tokenize(target_densities_.value(), ',')) {
+ for (StringPiece config_str : util::Tokenize(target_densities_.value(), ',')) {
std::optional<uint16_t> target_density = ParseTargetDensityParameter(config_str, diag);
if (!target_density) {
return 1;
diff --git a/tools/aapt2/cmd/Util.cpp b/tools/aapt2/cmd/Util.cpp
index 56e2f52..92849cf 100644
--- a/tools/aapt2/cmd/Util.cpp
+++ b/tools/aapt2/cmd/Util.cpp
@@ -34,8 +34,7 @@
namespace aapt {
-std::optional<uint16_t> ParseTargetDensityParameter(const StringPiece& arg,
- android::IDiagnostics* diag) {
+std::optional<uint16_t> ParseTargetDensityParameter(StringPiece arg, android::IDiagnostics* diag) {
ConfigDescription preferred_density_config;
if (!ConfigDescription::Parse(arg, &preferred_density_config)) {
diag->Error(android::DiagMessage()
@@ -55,7 +54,7 @@
return preferred_density_config.density;
}
-bool ParseSplitParameter(const StringPiece& arg, android::IDiagnostics* diag, std::string* out_path,
+bool ParseSplitParameter(StringPiece arg, android::IDiagnostics* diag, std::string* out_path,
SplitConstraints* out_split) {
CHECK(diag != nullptr);
CHECK(out_path != nullptr);
@@ -77,7 +76,7 @@
*out_path = parts[0];
out_split->name = parts[1];
- for (const StringPiece& config_str : util::Tokenize(parts[1], ',')) {
+ for (StringPiece config_str : util::Tokenize(parts[1], ',')) {
ConfigDescription config;
if (!ConfigDescription::Parse(config_str, &config)) {
diag->Error(android::DiagMessage()
@@ -93,7 +92,7 @@
android::IDiagnostics* diag) {
std::unique_ptr<AxisConfigFilter> filter = util::make_unique<AxisConfigFilter>();
for (const std::string& config_arg : args) {
- for (const StringPiece& config_str : util::Tokenize(config_arg, ',')) {
+ for (StringPiece config_str : util::Tokenize(config_arg, ',')) {
ConfigDescription config;
LocaleValue lv;
if (lv.InitFromFilterString(config_str)) {
diff --git a/tools/aapt2/cmd/Util.h b/tools/aapt2/cmd/Util.h
index 3d4ca24..169d5f9 100644
--- a/tools/aapt2/cmd/Util.h
+++ b/tools/aapt2/cmd/Util.h
@@ -34,13 +34,13 @@
// Parses a configuration density (ex. hdpi, xxhdpi, 234dpi, anydpi, etc).
// Returns Nothing and logs a human friendly error message if the string was not legal.
-std::optional<uint16_t> ParseTargetDensityParameter(const android::StringPiece& arg,
+std::optional<uint16_t> ParseTargetDensityParameter(android::StringPiece arg,
android::IDiagnostics* diag);
// Parses a string of the form 'path/to/output.apk:<config>[,<config>...]' and fills in
// `out_path` with the path and `out_split` with the set of ConfigDescriptions.
// Returns false and logs a human friendly error message if the string was not legal.
-bool ParseSplitParameter(const android::StringPiece& arg, android::IDiagnostics* diag,
+bool ParseSplitParameter(android::StringPiece arg, android::IDiagnostics* diag,
std::string* out_path, SplitConstraints* out_split);
// Parses a set of config filter strings of the form 'en,fr-rFR' and returns an IConfigFilter.