Move off ZipString and over to std::string/std::string_view as appropriate.
Bug: http://b/129068177 Test: treehugger Change-Id: Ib46761d89772d3a3c655a39df573fd305c117d19
This commit is contained in:
@@ -216,7 +216,7 @@ bool ApkAssets::ForEachFile(const std::string& root_path,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
::ZipString name;
|
std::string name;
|
||||||
::ZipEntry entry;
|
::ZipEntry entry;
|
||||||
|
|
||||||
// We need to hold back directories because many paths will contain them and we want to only
|
// We need to hold back directories because many paths will contain them and we want to only
|
||||||
@@ -225,7 +225,7 @@ bool ApkAssets::ForEachFile(const std::string& root_path,
|
|||||||
|
|
||||||
int32_t result;
|
int32_t result;
|
||||||
while ((result = ::Next(cookie, &entry, &name)) == 0) {
|
while ((result = ::Next(cookie, &entry, &name)) == 0) {
|
||||||
StringPiece full_file_path(reinterpret_cast<const char*>(name.name), name.name_length);
|
StringPiece full_file_path(name);
|
||||||
StringPiece leaf_file_path = full_file_path.substr(root_path_full.size());
|
StringPiece leaf_file_path = full_file_path.substr(root_path_full.size());
|
||||||
|
|
||||||
if (!leaf_file_path.empty()) {
|
if (!leaf_file_path.empty()) {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ using namespace android;
|
|||||||
class _ZipEntryRO {
|
class _ZipEntryRO {
|
||||||
public:
|
public:
|
||||||
ZipEntry entry;
|
ZipEntry entry;
|
||||||
ZipString name;
|
std::string_view name;
|
||||||
void *cookie;
|
void *cookie;
|
||||||
|
|
||||||
_ZipEntryRO() : cookie(NULL) {}
|
_ZipEntryRO() : cookie(NULL) {}
|
||||||
@@ -96,7 +96,7 @@ ZipEntryRO ZipFileRO::findEntryByName(const char* entryName) const
|
|||||||
{
|
{
|
||||||
_ZipEntryRO* data = new _ZipEntryRO;
|
_ZipEntryRO* data = new _ZipEntryRO;
|
||||||
|
|
||||||
data->name = ZipString(entryName);
|
data->name = entryName;
|
||||||
|
|
||||||
const int32_t error = FindEntry(mHandle, entryName, &(data->entry));
|
const int32_t error = FindEntry(mHandle, entryName, &(data->entry));
|
||||||
if (error) {
|
if (error) {
|
||||||
@@ -194,14 +194,14 @@ int ZipFileRO::getEntryFileName(ZipEntryRO entry, char* buffer, size_t bufLen)
|
|||||||
const
|
const
|
||||||
{
|
{
|
||||||
const _ZipEntryRO* zipEntry = reinterpret_cast<_ZipEntryRO*>(entry);
|
const _ZipEntryRO* zipEntry = reinterpret_cast<_ZipEntryRO*>(entry);
|
||||||
const uint16_t requiredSize = zipEntry->name.name_length + 1;
|
const uint16_t requiredSize = zipEntry->name.length() + 1;
|
||||||
|
|
||||||
if (bufLen < requiredSize) {
|
if (bufLen < requiredSize) {
|
||||||
ALOGW("Buffer too short, requires %d bytes for entry name", requiredSize);
|
ALOGW("Buffer too short, requires %d bytes for entry name", requiredSize);
|
||||||
return requiredSize;
|
return requiredSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(buffer, zipEntry->name.name, requiredSize - 1);
|
memcpy(buffer, zipEntry->name.data(), requiredSize - 1);
|
||||||
buffer[requiredSize - 1] = '\0';
|
buffer[requiredSize - 1] = '\0';
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ TEST_F(ConvertTest, DuplicateEntriesWrittenOnce) {
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
// Can't pass nullptrs into Next()
|
// Can't pass nullptrs into Next()
|
||||||
ZipString zip_name;
|
std::string zip_name;
|
||||||
ZipEntry zip_data;
|
ZipEntry zip_data;
|
||||||
|
|
||||||
while ((result = Next(cookie, &zip_data, &zip_name)) == 0) {
|
while ((result = Next(cookie, &zip_data, &zip_name)) == 0) {
|
||||||
|
|||||||
@@ -123,13 +123,9 @@ std::unique_ptr<ZipFileCollection> ZipFileCollection::Create(
|
|||||||
using IterationEnder = std::unique_ptr<void, decltype(EndIteration)*>;
|
using IterationEnder = std::unique_ptr<void, decltype(EndIteration)*>;
|
||||||
IterationEnder iteration_ender(cookie, EndIteration);
|
IterationEnder iteration_ender(cookie, EndIteration);
|
||||||
|
|
||||||
ZipString zip_entry_name;
|
std::string zip_entry_path;
|
||||||
ZipEntry zip_data;
|
ZipEntry zip_data;
|
||||||
while ((result = Next(cookie, &zip_data, &zip_entry_name)) == 0) {
|
while ((result = Next(cookie, &zip_data, &zip_entry_path)) == 0) {
|
||||||
std::string zip_entry_path =
|
|
||||||
std::string(reinterpret_cast<const char*>(zip_entry_name.name),
|
|
||||||
zip_entry_name.name_length);
|
|
||||||
|
|
||||||
// Do not add folders to the file collection
|
// Do not add folders to the file collection
|
||||||
if (util::EndsWith(zip_entry_path, "/")) {
|
if (util::EndsWith(zip_entry_path, "/")) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user