summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorGrzegorz Adam Hankiewicz <gradha@imap.cc>2014-03-29 12:27:18 +0100
committerGrzegorz Adam Hankiewicz <gradha@imap.cc>2014-03-29 12:27:18 +0100
commita6f8bae69f36a582c0eb55988c1441421a3c042e (patch)
tree5dad6ba7b5e3b18b917c8cde7ca3b7f1f3baca3a /lib
parentd41988d8b25ffd42c8b1dd4b4626a2933db500de (diff)
downloadNim-a6f8bae69f36a582c0eb55988c1441421a3c042e.tar.gz
Uses swap() to avoid variable copies. Refs #1048.
Diffstat (limited to 'lib')
-rw-r--r--lib/wrappers/zip/zlib.nim8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/wrappers/zip/zlib.nim b/lib/wrappers/zip/zlib.nim
index f09b8b97a..2d8ac9058 100644
--- a/lib/wrappers/zip/zlib.nim
+++ b/lib/wrappers/zip/zlib.nim
@@ -287,10 +287,10 @@ proc uncompress*(sourceBuf: cstring, sourceLen: int): string =
   # Verify that the input is a valid gzip stream.
   if status != Z_STREAM_END:
     # Incomplete gzip stream.
-    return nil
+    return
 
   decompressed.setLen(have)
-  result = decompressed
+  swap(result, decompressed)
 
 
 proc inflate*(buffer: var string): bool {.discardable.} =
@@ -303,7 +303,7 @@ proc inflate*(buffer: var string): bool {.discardable.} =
   ## Returns true if `buffer` was successfully inflated.
   assert (not buffer.isNil)
   if buffer.len < 1: return
-  let temp = uncompress(addr(buffer[0]), buffer.len)
+  var temp = uncompress(addr(buffer[0]), buffer.len)
   if not temp.isNil:
-    buffer = temp
+    swap(buffer, temp)
     result = true