Skip to content

代码实现与注释存在差异 #5

@WhiteSeele

Description

@WhiteSeele

ThreadCache.cpp 的 returnToCentralCache 函数中的以下代码:

// 使用对齐后的大小计算分割点
    char* splitNode = current;
    for (size_t i = 0; i < keepNum - 1; ++i) 
    {
        splitNode = reinterpret_cast<char*>(*reinterpret_cast<void**>(splitNode));
        if (splitNode == nullptr) 
        {
            // 如果链表提前结束,更新实际的返回数量
            returnNum = batchNum - (i + 1);
            break;
        }
    }

注释提到使用对齐后的大小计算分割点,但实际代码采取链表遍历的方式计算分割点,并没显式调用之前计算的对齐后内存大小:

// 获取对齐后的实际块大小
    size_t alignedSize = SizeClass::roundUp(size);

能否修改为:

splitNode += alignedSize;

并通过计数来判断链表是否提前结束?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions