From fbfa897c2729aa980b38af4bee9fcb56f65dfaa4 Mon Sep 17 00:00:00 2001 From: Yu-Vitaqua-fer-Chronos Date: Sun, 3 Dec 2023 18:08:33 +0000 Subject: [PATCH] Code that doesn't special case Windows --- src/modernnet/buffer.nim | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/modernnet/buffer.nim b/src/modernnet/buffer.nim index 5c16b77..e8b6f86 100644 --- a/src/modernnet/buffer.nim +++ b/src/modernnet/buffer.nim @@ -112,12 +112,10 @@ func readVarNum*[R: int32 | int64](b: Buffer): R {.raises: [MnEndOfBufferError, func readString*(b: Buffer): string {.raises: [MnEndOfBufferError, MnPacketParsingError].} = ## Reads a string from a buffer let length = b.readVarNum[:int32]() - when defined(windows): - ## Related to nim itself bug on windows, without this line result can be wrong (example in: echo result)... - let stringAddress {.used.} = b.buf[b.pos..<(b.pos+length)] - result = cast[string](b.buf[b.pos..<(b.pos+length)]) - else: - result = cast[string](b.buf[b.pos..<(b.pos+length)]) + result.setLen(length) + + let data = b.buf[b.pos..<(b.pos+length)] + result = cast[string](data) b.pos += length