am 6871f937: am 400e7372: Merge "Add EndIteration method to free memory allocated"

* commit '6871f937f93c2a37344b928203ec613559584d33':
  Add EndIteration method to free memory allocated
This commit is contained in:
Piotr Jastrzebski 2014-08-11 09:57:52 +00:00 committed by Android Git Automerger
commit 6a993053c8
2 changed files with 16 additions and 4 deletions

View file

@ -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

View file

@ -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;