summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2021-04-21 01:00:44 +0800
committerGitHub <noreply@github.com>2021-04-20 19:00:44 +0200
commiteb221dcc27b7f8f11ec34046e3165508acdf8beb (patch)
treef1024aa0459b55968e12c6fbf3516c805fad35a4
parent0b116310bfb691755481293e8f9af11190fe0999 (diff)
downloadNim-eb221dcc27b7f8f11ec34046e3165508acdf8beb.tar.gz
[std/deques] move data instead of copy + destroy (#17800)
-rw-r--r--lib/pure/collections/deques.nim6
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/pure/collections/deques.nim b/lib/pure/collections/deques.nim
index d2d53d993..582bb02a7 100644
--- a/lib/pure/collections/deques.nim
+++ b/lib/pure/collections/deques.nim
@@ -379,8 +379,7 @@ proc popFirst*[T](deq: var Deque[T]): T {.inline, discardable.} =
 
   emptyCheck(deq)
   dec deq.count
-  result = deq.data[deq.head]
-  destroy(deq.data[deq.head])
+  result = move deq.data[deq.head]
   deq.head = (deq.head + 1) and deq.mask
 
 proc popLast*[T](deq: var Deque[T]): T {.inline, discardable.} =
@@ -398,8 +397,7 @@ proc popLast*[T](deq: var Deque[T]): T {.inline, discardable.} =
   emptyCheck(deq)
   dec deq.count
   deq.tail = (deq.tail - 1) and deq.mask
-  result = deq.data[deq.tail]
-  destroy(deq.data[deq.tail])
+  result = move deq.data[deq.tail]
 
 proc clear*[T](deq: var Deque[T]) {.inline.} =
   ## Resets the deque so that it is empty.