Uses finally as statement to release zlib memory. Refs #1048.

This commit is contained in:
Grzegorz Adam Hankiewicz
2014-03-29 12:29:17 +01:00
parent a6f8bae69f
commit 20e55fc5d4

View File

@@ -231,6 +231,9 @@ proc uncompress*(sourceBuf: cstring, sourceLen: int): string =
# Out of memory.
return
# Make sure memory allocated by inflateInit2() is freed eventually.
finally: discard inflateEnd(z)
# Decompress all of self.
while true:
# Allow for concatenated gzip streams (per RFC 1952).
@@ -281,8 +284,6 @@ proc uncompress*(sourceBuf: cstring, sourceLen: int): string =
# Continue until all input consumed.
if left == 0 and z.avail_in == 0:
break
# Free the memory allocated by inflateInit2().
discard inflateEnd(z)
# Verify that the input is a valid gzip stream.
if status != Z_STREAM_END: