刚才还有个bug,就是剩余的长度正好时18字节的时候,<改成<=就行了,bugfix

This commit is contained in:
zzh 2025-04-25 15:43:37 +08:00
parent dbe57f345c
commit c488d139db
1 changed files with 9 additions and 9 deletions

View File

@ -272,9 +272,9 @@ static size_t doFirstPipeReadFile(FirstPipeArg &p, DataBuffer &halfBlock, FILE *
readState = fread(readData.dataBuf, 1, readData.readBufSize, fpr);
if (readState == 0) { return 0; }
//if (p.readOrder == 278) {
// spdlog::info("last remain, blocklen: {}, last load: {}", halfBlock.curLen, halfBlock.readPos);
//}
if (p.readOrder == 483) {
spdlog::info("last remain, blocklen: {}, last load: {}", halfBlock.curLen, halfBlock.readPos);
}
readData.startAddrArr.clear();
@ -291,7 +291,7 @@ static size_t doFirstPipeReadFile(FirstPipeArg &p, DataBuffer &halfBlock, FILE *
readData.startAddrArr.push_back(readData.blockBuf);
}
/* 解析读入buf中的文件数据计算包含的每个block的长度信息和起始地址 */
while (curReadPos + BLOCK_HEADER_LENGTH < readState) { /* 确保能解析block长度 */
while (curReadPos + BLOCK_HEADER_LENGTH <= readState) { /* 确保能解析block长度 */
blockLen = unpackInt16(&readData.dataBuf[curReadPos + 16]) + 1;
if (blockLen > maxBlockLen) { maxBlockLen = blockLen; }
if (curReadPos + blockLen <= readState) { /* 完整的block数据在buf里 */
@ -307,11 +307,11 @@ static size_t doFirstPipeReadFile(FirstPipeArg &p, DataBuffer &halfBlock, FILE *
if (halfBlock.readPos > 0) {
memcpy(halfBlock.data, &readData.dataBuf[curReadPos], halfBlock.readPos); // 将不完整的block拷贝到halfBlock
}
//if (p.readOrder == 277) {
// spdlog::info("tail - last remain, blocklen: {}, last load: {}", halfBlock.curLen, halfBlock.readPos);
//}
//spdlog::info("block num-1: {}", readData.startAddrArr.size());
//spdlog::info("max block len: {}", maxBlockLen);
if (p.readOrder == 482) {
spdlog::info("tail - last remain, blocklen: {}, last load: {}", halfBlock.curLen, halfBlock.readPos);
}
// spdlog::info("block num-1: {}", readData.startAddrArr.size());
spdlog::info("read order: {}, max block len: {}", p.readOrder, maxBlockLen);
return readState;
}