summary refs log tree commit diff stats
path: root/lib/std
diff options
context:
space:
mode:
authorringabout <43030857+ringabout@users.noreply.github.com>2024-02-05 19:14:21 +0800
committerGitHub <noreply@github.com>2024-02-05 12:14:21 +0100
commita1d820367f677d06c2c9f93d1c2f88105e7d7b36 (patch)
tree67590514d4442a5f85a22cb9b4de26e64d9e01d4 /lib/std
parentdd753b33830ab084686f9cf9c7d573702f175bb5 (diff)
downloadNim-a1d820367f677d06c2c9f93d1c2f88105e7d7b36.tar.gz
follow up #22380; fixes incorrect usages of `newWideCString` (#23278)
follow up #22380
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/private/ospaths2.nim4
-rw-r--r--lib/std/syncio.nim2
-rw-r--r--lib/std/widestrs.nim1
3 files changed, 4 insertions, 3 deletions
diff --git a/lib/std/private/ospaths2.nim b/lib/std/private/ospaths2.nim
index 37fae3ccd..5dd09d7e6 100644
--- a/lib/std/private/ospaths2.nim
+++ b/lib/std/private/ospaths2.nim
@@ -862,13 +862,13 @@ when not defined(nimscript):
       raiseAssert "use -d:nodejs to have `getCurrentDir` defined"
     elif defined(windows):
       var bufsize = MAX_PATH.int32
-      var res = newWideCString("", bufsize)
+      var res = newWideCString(bufsize)
       while true:
         var L = getCurrentDirectoryW(bufsize, res)
         if L == 0'i32:
           raiseOSError(osLastError())
         elif L > bufsize:
-          res = newWideCString("", L)
+          res = newWideCString(L)
           bufsize = L
         else:
           result = res$L
diff --git a/lib/std/syncio.nim b/lib/std/syncio.nim
index b664c3b60..38c151bb7 100644
--- a/lib/std/syncio.nim
+++ b/lib/std/syncio.nim
@@ -419,7 +419,7 @@ proc readLine*(f: File, line: var string): bool {.tags: [ReadIOEffect],
     if f.isatty:
       const numberOfCharsToRead = 2048
       var numberOfCharsRead = 0'i32
-      var buffer = newWideCString("", numberOfCharsToRead)
+      var buffer = newWideCString(numberOfCharsToRead)
       if readConsole(getOsFileHandle(f), addr(buffer[0]),
         numberOfCharsToRead, addr(numberOfCharsRead), nil) == 0:
         var error = getLastError()
diff --git a/lib/std/widestrs.nim b/lib/std/widestrs.nim
index 0bf50be45..3ea4f520f 100644
--- a/lib/std/widestrs.nim
+++ b/lib/std/widestrs.nim
@@ -154,6 +154,7 @@ when not (defined(cpu16) or defined(cpu8)):
     createWide(result, size * 2 + 2)
 
   proc newWideCString*(source: cstring, L: int): WideCStringObj =
+    ## Warning:: `source` needs to be preallocated with the length `L`
     createWide(result, L * 2 + 2)
     var d = 0
     for ch in runes(source, L):