Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c394f7f7 authored by Ryan Prichard's avatar Ryan Prichard Committed by Gerrit Code Review
Browse files

Merge "Change ZipArchiveHandle from void* to ZipArchive*"

parents 83093e7e 3673f99d
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -103,7 +103,8 @@ struct ZipEntry {
  off64_t offset;
};

typedef void* ZipArchiveHandle;
struct ZipArchive;
typedef ZipArchive* ZipArchiveHandle;

/*
 * Open a Zip archive, and sets handle to the value of the opaque
@@ -144,7 +145,7 @@ int32_t OpenArchiveFromMemory(void* address, size_t length, const char* debugFil
 * this handle for any further operations without an intervening
 * call to one of the OpenArchive variants.
 */
void CloseArchive(ZipArchiveHandle handle);
void CloseArchive(ZipArchiveHandle archive);

/*
 * Find an entry in the Zip archive, by name. |entryName| must be a null
@@ -162,7 +163,7 @@ void CloseArchive(ZipArchiveHandle handle);
 * On non-Windows platforms this method does not modify internal state and
 * can be called concurrently.
 */
int32_t FindEntry(const ZipArchiveHandle handle, const ZipString& entryName, ZipEntry* data);
int32_t FindEntry(const ZipArchiveHandle archive, const ZipString& entryName, ZipEntry* data);

/*
 * Start iterating over all entries of a zip file. The order of iteration
@@ -177,8 +178,8 @@ int32_t FindEntry(const ZipArchiveHandle handle, const ZipString& entryName, Zip
 *
 * Returns 0 on success and negative values on failure.
 */
int32_t StartIteration(ZipArchiveHandle handle, void** cookie_ptr, const ZipString* optional_prefix,
                       const ZipString* optional_suffix);
int32_t StartIteration(ZipArchiveHandle archive, void** cookie_ptr,
                       const ZipString* optional_prefix, const ZipString* optional_suffix);

/*
 * Advance to the next element in the zipfile in iteration order.
@@ -203,7 +204,7 @@ void EndIteration(void* cookie);
 *
 * Returns 0 on success and negative values on failure.
 */
int32_t ExtractEntryToFile(ZipArchiveHandle handle, ZipEntry* entry, int fd);
int32_t ExtractEntryToFile(ZipArchiveHandle archive, ZipEntry* entry, int fd);

/**
 * Uncompress a given zip entry to the memory region at |begin| and of
@@ -213,9 +214,9 @@ int32_t ExtractEntryToFile(ZipArchiveHandle handle, ZipEntry* entry, int fd);
 *
 * Returns 0 on success and negative values on failure.
 */
int32_t ExtractToMemory(ZipArchiveHandle handle, ZipEntry* entry, uint8_t* begin, uint32_t size);
int32_t ExtractToMemory(ZipArchiveHandle archive, ZipEntry* entry, uint8_t* begin, uint32_t size);

int GetFileDescriptor(const ZipArchiveHandle handle);
int GetFileDescriptor(const ZipArchiveHandle archive);

const char* ErrorCodeString(int32_t error_code);

@@ -226,7 +227,7 @@ typedef bool (*ProcessZipEntryFunction)(const uint8_t* buf, size_t buf_size, voi
 * Stream the uncompressed data through the supplied function,
 * passing cookie to it each time it gets called.
 */
int32_t ProcessZipEntryContents(ZipArchiveHandle handle, ZipEntry* entry,
int32_t ProcessZipEntryContents(ZipArchiveHandle archive, ZipEntry* entry,
                                ProcessZipEntryFunction func, void* cookie);
#endif

+13 −18
Original line number Diff line number Diff line
@@ -517,8 +517,7 @@ int32_t OpenArchiveFromMemory(void* address, size_t length, const char* debug_fi
/*
 * Close a ZipArchive, closing the file and freeing the contents.
 */
void CloseArchive(ZipArchiveHandle handle) {
  ZipArchive* archive = reinterpret_cast<ZipArchive*>(handle);
void CloseArchive(ZipArchiveHandle archive) {
  ALOGV("Closing archive %p", archive);
  delete archive;
}
@@ -745,10 +744,8 @@ struct IterationHandle {
  }
};

int32_t StartIteration(ZipArchiveHandle handle, void** cookie_ptr, const ZipString* optional_prefix,
                       const ZipString* optional_suffix) {
  ZipArchive* archive = reinterpret_cast<ZipArchive*>(handle);

int32_t StartIteration(ZipArchiveHandle archive, void** cookie_ptr,
                       const ZipString* optional_prefix, const ZipString* optional_suffix) {
  if (archive == NULL || archive->hash_table == NULL) {
    ALOGW("Zip: Invalid ZipArchiveHandle");
    return kInvalidHandle;
@@ -766,8 +763,7 @@ void EndIteration(void* cookie) {
  delete reinterpret_cast<IterationHandle*>(cookie);
}

int32_t FindEntry(const ZipArchiveHandle handle, const ZipString& entryName, ZipEntry* data) {
  const ZipArchive* archive = reinterpret_cast<ZipArchive*>(handle);
int32_t FindEntry(const ZipArchiveHandle archive, const ZipString& entryName, ZipEntry* data) {
  if (entryName.name_length == 0) {
    ALOGW("Zip: Invalid filename %.*s", entryName.name_length, entryName.name);
    return kInvalidEntryName;
@@ -1116,8 +1112,7 @@ static int32_t CopyEntryToWriter(MappedZipFile& mapped_zip, const ZipEntry* entr
  return 0;
}

int32_t ExtractToWriter(ZipArchiveHandle handle, ZipEntry* entry, zip_archive::Writer* writer) {
  ZipArchive* archive = reinterpret_cast<ZipArchive*>(handle);
int32_t ExtractToWriter(ZipArchiveHandle archive, ZipEntry* entry, zip_archive::Writer* writer) {
  const uint16_t method = entry->method;

  // this should default to kUnknownCompressionMethod.
@@ -1145,18 +1140,18 @@ int32_t ExtractToWriter(ZipArchiveHandle handle, ZipEntry* entry, zip_archive::W
  return return_value;
}

int32_t ExtractToMemory(ZipArchiveHandle handle, ZipEntry* entry, uint8_t* begin, uint32_t size) {
int32_t ExtractToMemory(ZipArchiveHandle archive, ZipEntry* entry, uint8_t* begin, uint32_t size) {
  MemoryWriter writer(begin, size);
  return ExtractToWriter(handle, entry, &writer);
  return ExtractToWriter(archive, entry, &writer);
}

int32_t ExtractEntryToFile(ZipArchiveHandle handle, ZipEntry* entry, int fd) {
int32_t ExtractEntryToFile(ZipArchiveHandle archive, ZipEntry* entry, int fd) {
  auto writer = FileWriter::Create(fd, entry);
  if (!writer.IsValid()) {
    return kIoError;
  }

  return ExtractToWriter(handle, entry, &writer);
  return ExtractToWriter(archive, entry, &writer);
}

const char* ErrorCodeString(int32_t error_code) {
@@ -1173,8 +1168,8 @@ const char* ErrorCodeString(int32_t error_code) {
  return "Unknown return code";
}

int GetFileDescriptor(const ZipArchiveHandle handle) {
  return reinterpret_cast<ZipArchive*>(handle)->mapped_zip.GetFileDescriptor();
int GetFileDescriptor(const ZipArchiveHandle archive) {
  return archive->mapped_zip.GetFileDescriptor();
}

ZipString::ZipString(const char* entry_name) : name(reinterpret_cast<const uint8_t*>(entry_name)) {
@@ -1198,10 +1193,10 @@ class ProcessWriter : public zip_archive::Writer {
  void* cookie_;
};

int32_t ProcessZipEntryContents(ZipArchiveHandle handle, ZipEntry* entry,
int32_t ProcessZipEntryContents(ZipArchiveHandle archive, ZipEntry* entry,
                                ProcessZipEntryFunction func, void* cookie) {
  ProcessWriter writer(func, cookie);
  return ExtractToWriter(handle, entry, &writer);
  return ExtractToWriter(archive, entry, &writer);
}

#endif  //! defined(_WIN32)