ByteArray中的readBytes和writeBytes是否应该改成这样?
function Packet:readBytes(__bytes, __offset, __length)
assert(iskindof(__bytes, “ByteArray”), “Need a ByteArray instance!”)
local __selfLen = #self._buf
local __availableLen = __selfLen - self._pos + 1
__offset = __offset or 1
if __offset > __selfLen then __offset = 1 end
__length = __length or 0
if __length == 0 or __length > __availableLen then __length = __availableLen end
__bytes:setPos(__offset)
for i=__offset,__offset+__length-1 do
__bytes:writeRawByte(self:readRawByte())
end
end
function Packet:writeBytes(__bytes, __offset, __length)
assert(iskindof(__bytes, “ByteArray”), “Need a ByteArray instance!”)
local __bytesLen = __bytes:getLen()
if __bytesLen == 0 then return end
__offset = __offset or 1
if __offset > __bytesLen then __offset = 1 end
local __availableLen = __bytesLen - __offset + 1
__length = __length or __availableLen
if __length == 0 or __length > __availableLen then __length = __availableLen end
local __oldPos = __bytes:getPos()
__bytes:setPos(__offset)
for i=__offset,__offset+__length-1 do
self:writeRawByte(__bytes:readRawByte())
end
__bytes:setPos(__oldPos)
return self
end