From 0ef9c349e6e10d0ea156e2516f7cda5d40bcff3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20B=C3=B6rjesson?= Date: Thu, 24 Oct 2024 07:53:40 +0200 Subject: [PATCH] No need to copy from io::memory --- src/mqtt/protocol/payload.cr | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mqtt/protocol/payload.cr b/src/mqtt/protocol/payload.cr index 0542617..eab9be3 100644 --- a/src/mqtt/protocol/payload.cr +++ b/src/mqtt/protocol/payload.cr @@ -74,14 +74,14 @@ module MQTT if data = @data io.write data else - # try to copy if it's possible to "rewind" - if @io.io.is_a?(::IO::Memory | ::IO::FileDescriptor) + if io_mem = @io.io.as?(::IO::Memory) + io.write io_mem.to_slice + elsif @io.io.is_a?(::IO::FileDescriptor) pos = @io.pos copied = ::IO.copy(@io, io, bytesize) raise "Failed to copy payload" if copied != bytesize @io.pos = pos else - # copy to memory and write io.write to_slice end end