Clean up global vars.
If a client library initalize global variables using VintfObject,
because global variables inside libvintf may not be initalized, it
may cause errors.
Instead of using global strings, use global constexpr const char*
instead, which are resolved at compile time
Test: TH
Bug: 179270601
Change-Id: I7bde2c4d6e43270ee09115eae5a4402783dfe5d5
diff --git a/VintfObject.cpp b/VintfObject.cpp
index 4eee9c4..bbd399b 100644
--- a/VintfObject.cpp
+++ b/VintfObject.cpp
@@ -37,6 +37,7 @@
using std::placeholders::_1;
using std::placeholders::_2;
+using std::string_literals::operator""s;
namespace android {
namespace vintf {
@@ -193,7 +194,7 @@
// None of the fragments specify any FCM version. Should never happen except
// for inconsistent builds.
if (error) {
- *error = "No framework compatibility matrix files under " + kSystemVintfDir +
+ *error = "No framework compatibility matrix files under "s + kSystemVintfDir +
" declare FCM version.";
}
return NAME_NOT_FOUND;
@@ -298,7 +299,7 @@
if (!vendorSku.empty()) {
status =
- fetchOneHalManifest(kVendorVintfDir + "manifest_" + vendorSku + ".xml", out, error);
+ fetchOneHalManifest(kVendorVintfDir + "manifest_"s + vendorSku + ".xml", out, error);
if (status == OK || status != NAME_NOT_FOUND) {
return status;
}
@@ -328,7 +329,7 @@
if (!productModel.empty()) {
status =
- fetchOneHalManifest(kOdmVintfDir + "manifest_" + productModel + ".xml", out, error);
+ fetchOneHalManifest(kOdmVintfDir + "manifest_"s + productModel + ".xml", out, error);
if (status == OK || status != NAME_NOT_FOUND) {
return status;
}
@@ -340,7 +341,7 @@
}
if (!productModel.empty()) {
- status = fetchOneHalManifest(kOdmLegacyVintfDir + "manifest_" + productModel + ".xml", out,
+ status = fetchOneHalManifest(kOdmLegacyVintfDir + "manifest_"s + productModel + ".xml", out,
error);
if (status == OK || status != NAME_NOT_FOUND) {
return status;
@@ -390,7 +391,7 @@
return dirStatus;
}
- std::vector<std::pair<const std::string&, const std::string&>> extensions{
+ std::vector<std::pair<const char*, const char*>> extensions{
{kProductManifest, kProductManifestFragmentDir},
{kSystemExtManifest, kSystemExtManifestFragmentDir},
};
@@ -403,7 +404,7 @@
if (status == OK) {
if (!out->addAll(&halManifest, error)) {
if (error) {
- error->insert(0, "Cannot add " + manifestPath + ":");
+ error->insert(0, "Cannot add "s + manifestPath + ":");
}
return UNKNOWN_ERROR;
}
@@ -641,33 +642,6 @@
namespace details {
-const std::string kSystemVintfDir = "/system/etc/vintf/";
-const std::string kVendorVintfDir = "/vendor/etc/vintf/";
-const std::string kOdmVintfDir = "/odm/etc/vintf/";
-const std::string kProductVintfDir = "/product/etc/vintf/";
-const std::string kSystemExtVintfDir = "/system_ext/etc/vintf/";
-
-const std::string kVendorManifest = kVendorVintfDir + "manifest.xml";
-const std::string kSystemManifest = kSystemVintfDir + "manifest.xml";
-const std::string kVendorMatrix = kVendorVintfDir + "compatibility_matrix.xml";
-const std::string kOdmManifest = kOdmVintfDir + "manifest.xml";
-const std::string kProductMatrix = kProductVintfDir + "compatibility_matrix.xml";
-const std::string kProductManifest = kProductVintfDir + "manifest.xml";
-const std::string kSystemExtManifest = kSystemExtVintfDir + "manifest.xml";
-
-const std::string kVendorManifestFragmentDir = kVendorVintfDir + "manifest/";
-const std::string kSystemManifestFragmentDir = kSystemVintfDir + "manifest/";
-const std::string kOdmManifestFragmentDir = kOdmVintfDir + "manifest/";
-const std::string kProductManifestFragmentDir = kProductVintfDir + "manifest/";
-const std::string kSystemExtManifestFragmentDir = kSystemExtVintfDir + "manifest/";
-
-const std::string kVendorLegacyManifest = "/vendor/manifest.xml";
-const std::string kVendorLegacyMatrix = "/vendor/compatibility_matrix.xml";
-const std::string kSystemLegacyManifest = "/system/manifest.xml";
-const std::string kSystemLegacyMatrix = "/system/compatibility_matrix.xml";
-const std::string kOdmLegacyVintfDir = "/odm/etc/";
-const std::string kOdmLegacyManifest = kOdmLegacyVintfDir + "manifest.xml";
-
std::vector<std::string> dumpFileList() {
return {
// clang-format off