TinySTL icon indicating copy to clipboard operation
TinySTL copied to clipboard

分配器问题

Open boscotsang opened this issue 8 years ago • 4 comments

Alloc.cpp 的103行开始对malloc分配失败的分支进行处理,遍历所有已有的free obj查看有无可用的free obj,其中for循环应该从i等于bytes开始,因为小于bytes的obj肯定不能满足,然后如果都没有可用的链表,tinystl依然默认其分配成功,并且最后将heap_size加上bytes_to_get和调用chunk_alloc可能导致无限调用

boscotsang avatar May 24 '16 01:05 boscotsang

确实有这个问题,alloc::chunk_alloc函数中 for (int i = 0; i <= EMaxBytes::MAXBYTES; i += EAlign::ALIGN)这一行应该改为: for (int i = bytes; i <= EMaxBytes::MAXBYTES; i += EAlign::ALIGN) @zouxiaohang

iEternity avatar Nov 08 '17 10:11 iEternity

我也发现这个问题了

douysu avatar Sep 14 '21 03:09 douysu

对的,如果所有free obj都不可用。应该尝试out of memory机制。

lin-rany avatar Feb 01 '22 11:02 lin-rany

邹晓航已经收到了你发送的邮件~~

zouxiaohang avatar Feb 01 '22 11:02 zouxiaohang