Loading tools/aapt2/io/ZipArchive.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ ZipFileCollectionIterator::ZipFileCollectionIterator( bool ZipFileCollectionIterator::HasNext() { return current_ != end_; } IFile* ZipFileCollectionIterator::Next() { IFile* result = current_->second.get(); IFile* result = current_->get(); ++current_; return result; } Loading Loading @@ -114,8 +114,10 @@ std::unique_ptr<ZipFileCollection> ZipFileCollection::Create( std::string(reinterpret_cast<const char*>(zip_entry_name.name), zip_entry_name.name_length); std::string nested_path = path.to_string() + "@" + zip_entry_path; collection->files_[zip_entry_path] = util::make_unique<ZipFile>( collection->handle_, zip_data, Source(nested_path)); std::unique_ptr<IFile> file = util::make_unique<ZipFile>(collection->handle_, zip_data, Source(nested_path)); collection->files_by_name_[zip_entry_path] = file.get(); collection->files_.push_back(std::move(file)); } if (result != -1) { Loading @@ -126,9 +128,9 @@ std::unique_ptr<ZipFileCollection> ZipFileCollection::Create( } IFile* ZipFileCollection::FindFile(const StringPiece& path) { auto iter = files_.find(path.to_string()); if (iter != files_.end()) { return iter->second.get(); auto iter = files_by_name_.find(path.to_string()); if (iter != files_by_name_.end()) { return iter->second; } return nullptr; } Loading tools/aapt2/io/ZipArchive.h +3 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ class ZipFileCollectionIterator : public IFileCollectionIterator { io::IFile* Next() override; private: std::map<std::string, std::unique_ptr<IFile>>::const_iterator current_, end_; std::vector<std::unique_ptr<IFile>>::const_iterator current_, end_; }; /** Loading @@ -79,7 +79,8 @@ class ZipFileCollection : public IFileCollection { ZipFileCollection(); ZipArchiveHandle handle_; std::map<std::string, std::unique_ptr<IFile>> files_; std::vector<std::unique_ptr<IFile>> files_; std::map<std::string, IFile*> files_by_name_; }; } // namespace io Loading Loading
tools/aapt2/io/ZipArchive.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ ZipFileCollectionIterator::ZipFileCollectionIterator( bool ZipFileCollectionIterator::HasNext() { return current_ != end_; } IFile* ZipFileCollectionIterator::Next() { IFile* result = current_->second.get(); IFile* result = current_->get(); ++current_; return result; } Loading Loading @@ -114,8 +114,10 @@ std::unique_ptr<ZipFileCollection> ZipFileCollection::Create( std::string(reinterpret_cast<const char*>(zip_entry_name.name), zip_entry_name.name_length); std::string nested_path = path.to_string() + "@" + zip_entry_path; collection->files_[zip_entry_path] = util::make_unique<ZipFile>( collection->handle_, zip_data, Source(nested_path)); std::unique_ptr<IFile> file = util::make_unique<ZipFile>(collection->handle_, zip_data, Source(nested_path)); collection->files_by_name_[zip_entry_path] = file.get(); collection->files_.push_back(std::move(file)); } if (result != -1) { Loading @@ -126,9 +128,9 @@ std::unique_ptr<ZipFileCollection> ZipFileCollection::Create( } IFile* ZipFileCollection::FindFile(const StringPiece& path) { auto iter = files_.find(path.to_string()); if (iter != files_.end()) { return iter->second.get(); auto iter = files_by_name_.find(path.to_string()); if (iter != files_by_name_.end()) { return iter->second; } return nullptr; } Loading
tools/aapt2/io/ZipArchive.h +3 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ class ZipFileCollectionIterator : public IFileCollectionIterator { io::IFile* Next() override; private: std::map<std::string, std::unique_ptr<IFile>>::const_iterator current_, end_; std::vector<std::unique_ptr<IFile>>::const_iterator current_, end_; }; /** Loading @@ -79,7 +79,8 @@ class ZipFileCollection : public IFileCollection { ZipFileCollection(); ZipArchiveHandle handle_; std::map<std::string, std::unique_ptr<IFile>> files_; std::vector<std::unique_ptr<IFile>> files_; std::map<std::string, IFile*> files_by_name_; }; } // namespace io Loading