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

Commit 400e7372 authored by Piotr Jastrzebski's avatar Piotr Jastrzebski Committed by Gerrit Code Review
Browse files

Merge "Add EndIteration method to free memory allocated"

parents 2f40ddf3 79c8b34f
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -130,10 +130,10 @@ int32_t FindEntry(const ZipArchiveHandle handle, const char* entryName,
/*
 * Start iterating over all entries of a zip file. The order of iteration
 * is not guaranteed to be the same as the order of elements
 * in the central directory but is stable for a given zip file. |cookie|
 * must point to a writeable memory location, and will be set to the value
 * of an opaque cookie which can be used to make one or more calls to
 * Next.
 * in the central directory but is stable for a given zip file. |cookie| will
 * contain the value of an opaque cookie which can be used to make one or more
 * calls to Next. All calls to StartIteration must be matched by a call to
 * EndIteration to free any allocated memory.
 *
 * This method also accepts an optional prefix to restrict iteration to
 * entry names that start with |prefix|.
@@ -151,6 +151,12 @@ int32_t StartIteration(ZipArchiveHandle handle, void** cookie_ptr,
 */
int32_t Next(void* cookie, ZipEntry* data, ZipEntryName *name);

/*
 * End iteration over all entries of a zip file and frees the memory allocated
 * in StartIteration.
 */
void EndIteration(void* cookie);

/*
 * Uncompress and write an entry to an open file identified by |fd|.
 * |entry->uncompressed_length| bytes will be written to the file at
+6 −0
Original line number Diff line number Diff line
@@ -909,6 +909,12 @@ int32_t StartIteration(ZipArchiveHandle handle, void** cookie_ptr, const char* p
  return 0;
}

void EndIteration(void* cookie) {
  if (cookie != NULL) {
    free(cookie);
  }
}

int32_t FindEntry(const ZipArchiveHandle handle, const char* entryName,
                  ZipEntry* data) {
  const ZipArchive* archive = (ZipArchive*) handle;