summary refs log tree commit diff stats
path: root/lib/system
diff options
context:
space:
mode:
authorMiran <narimiran@disroot.org>2020-06-23 16:15:37 +0200
committerGitHub <noreply@github.com>2020-06-23 16:15:37 +0200
commit881d1ee57b99c42e016fe0f8d2ca64a253f75960 (patch)
tree4288a24cc25d0982eb7c49a0062863c6a6959fdc /lib/system
parent685d03e2e0af156021b63b33575ad6d26dc6a228 (diff)
downloadNim-881d1ee57b99c42e016fe0f8d2ca64a253f75960.tar.gz
fix #14750, don't allocate too much in newWideCString (#14773)
Diffstat (limited to 'lib/system')
-rw-r--r--lib/system/widestrs.nim5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/system/widestrs.nim b/lib/system/widestrs.nim
index a7a514446..aabcbdc90 100644
--- a/lib/system/widestrs.nim
+++ b/lib/system/widestrs.nim
@@ -56,7 +56,7 @@ else:
     WideCStringObj* = WideCString
 
   template createWide(a; L) =
-    unsafeNew(a, L * 4 + 2)
+    unsafeNew(a, L)
 
 proc ord(arg: Utf16Char): int = int(cast[uint16](arg))
 
@@ -138,8 +138,7 @@ iterator runes(s: cstring, L: int): int =
     yield result
 
 proc newWideCString*(source: cstring, L: int): WideCStringObj =
-  createWide(result, L * 4 + 2)
-  #result = cast[wideCString](alloc(L * 4 + 2))
+  createWide(result, L * 2 + 2)
   var d = 0
   for ch in runes(source, L):