summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/collections/deques.nim5
-rw-r--r--lib/system.nim1
2 files changed, 2 insertions, 4 deletions
diff --git a/lib/pure/collections/deques.nim b/lib/pure/collections/deques.nim
index 409240b37..e8342e208 100644
--- a/lib/pure/collections/deques.nim
+++ b/lib/pure/collections/deques.nim
@@ -161,10 +161,7 @@ proc peekLast*[T](deq: Deque[T]): T {.inline.} =
   result = deq.data[(deq.tail - 1) and deq.mask]
 
 template destroy(x: untyped) =
-  when defined(nimNewRuntime) and not supportsCopyMem(type(x)):
-    `=destroy`(x)
-  else:
-    reset(x)
+  reset(x)
 
 proc popFirst*[T](deq: var Deque[T]): T {.inline, discardable.} =
   ## Remove and returns the first element of the `deq`.
diff --git a/lib/system.nim b/lib/system.nim
index 52ed524be..832a98976 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -4112,6 +4112,7 @@ template once*(body: untyped): untyped =
 {.pop.} #{.push warning[GcMem]: off, warning[Uninit]: off.}
 
 proc substr*(s: string, first, last: int): string =
+  let first = max(first, 0)
   let L = max(min(last, high(s)) - first + 1, 0)
   result = newString(L)
   for i in 0 .. L-1: