diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-02-05 19:14:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-05 12:14:21 +0100 |
commit | a1d820367f677d06c2c9f93d1c2f88105e7d7b36 (patch) | |
tree | 67590514d4442a5f85a22cb9b4de26e64d9e01d4 /lib/std | |
parent | dd753b33830ab084686f9cf9c7d573702f175bb5 (diff) | |
download | Nim-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.nim | 4 | ||||
-rw-r--r-- | lib/std/syncio.nim | 2 | ||||
-rw-r--r-- | lib/std/widestrs.nim | 1 |
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): |