刚才还有个bug,就是剩余的长度正好时18字节的时候,<改成<=就行了,bugfix
This commit is contained in:
parent
dbe57f345c
commit
c488d139db
|
|
@ -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);
|
||||
//}
|
||||
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("max block len: {}", maxBlockLen);
|
||||
spdlog::info("read order: {}, max block len: {}", p.readOrder, maxBlockLen);
|
||||
|
||||
return readState;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue