From 7c516da9d145997c753a9bb09f8da4a66ec6aba6 Mon Sep 17 00:00:00 2001 From: godotg Date: Mon, 29 Jul 2024 10:49:52 +0800 Subject: [PATCH] chore[protocol]: deep clone log --- protocol/src/main/resources/dart/ByteBuffer.dart | 1 + protocol/src/main/resources/gdscript/ByteBuffer.gd | 1 + 2 files changed, 2 insertions(+) diff --git a/protocol/src/main/resources/dart/ByteBuffer.dart b/protocol/src/main/resources/dart/ByteBuffer.dart index 44e90ec7..50e9a131 100644 --- a/protocol/src/main/resources/dart/ByteBuffer.dart +++ b/protocol/src/main/resources/dart/ByteBuffer.dart @@ -21,6 +21,7 @@ class ByteBuffer implements IByteBuffer { writeInt(length); setWriteOffset(currentWriteIndex); } else { + // sublist of Int8List is deep clone var retainedByteBuf = buffer.sublist(currentWriteIndex - length, currentWriteIndex); setWriteOffset(beforeWriteIndex); diff --git a/protocol/src/main/resources/gdscript/ByteBuffer.gd b/protocol/src/main/resources/gdscript/ByteBuffer.gd index 2cee0e70..6a8ce81a 100644 --- a/protocol/src/main/resources/gdscript/ByteBuffer.gd +++ b/protocol/src/main/resources/gdscript/ByteBuffer.gd @@ -24,6 +24,7 @@ func adjustPadding(predictionLength: int, beforeWriteIndex: int) -> void: writeInt(length) setWriteOffset(currentWriteIndex) else: + # get_partial_data of StreamPeerBuffer is deep clone buffer.seek(currentWriteIndex - length) var retainedByteBuf = buffer.get_partial_data(length)[1] setWriteOffset(beforeWriteIndex)