From 29f13d8467347ed28971149ab11ee773f0ebb785 Mon Sep 17 00:00:00 2001 From: ztss <1159875384@qq.com> Date: Tue, 22 Nov 2022 22:41:06 +0800 Subject: [PATCH] Update ByteBuffer.cpp change clone function --- src/ByteBuffer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp index f56c325..a3b6b8c 100755 --- a/src/ByteBuffer.cpp +++ b/src/ByteBuffer.cpp @@ -89,11 +89,15 @@ void ByteBuffer::clear() { * @return A pointer to the newly cloned ByteBuffer. NULL if no more memory available */ ByteBuffer* ByteBuffer::clone() { + //save ByteBuffer* ret = new ByteBuffer(buf.size()); // Copy data for(unsigned int i = 0; i < buf.size(); i++) { - ret->put(i, (byte)get(i)); + // change the put call . there should not be put(i,(byte)get(i)). even change the place of these two parameters. + //because new ByteBuffer(buf.size()) return a ret have size of 0, can't call put((byte)get(i),i); + //ex: ByteBuffer* mybuf=new ByteBuffer(12); mybuf->put('a',0); can not initialize rightly. + ret->put((byte)get(i)); } // Reset positions