求问一处内存池管理的问题

1处注释说不能pop 引擎创建的那个pool。但为什么2处 assert 不这样写 CC_ASSERT(_releasePoolStack.size() >= 3);

3处代码 pop之后还大于1 那说明 pop之前最少是3,也就是说 _curReleasePool是为了记录 除系统默认压入的 1 2位置的默认池之外的其他池来用的?

怎么就变成3了呢???

因为 pool manager在构造的时候 有2个 默认池对象的指针被 压进了 队列中。。。所以 从第3个 池 才不是 那个默认的。。

引擎自己还要pop的 扣的真细致. 我突然发现好像你看的是3.0的代码 是不是.

错。。我看的是 3.1 的

你不会是小霍霍同学吧.

擦。。。龙哥。。。。。。。。你头像太暗了。。么看出来。。。

引擎自己创建的那个 默认的 池 不是 pop的,应该是 这个manager析构的时候 删掉的。。
所以这里对这个函数 一直有疑问。。不知道作者是什么意思

3.0还没仔细看过. 貌似改动挺大的. 最近又出了 swift 火热啊. 恭喜入坑.

系统创建的那个池是在 析构的时候 销毁的。。pop的是 用户自己创建的。 用户自己创建池需要用栈的方式进行创建,那么超出其作用域的时候 其析构的时候 会进行pop。。

还行. 据说凡是在 deprecated 目录下的以后就没了… 3.X某个版本估计就该彻底废弃这些了

我就是出于兴趣 研究研究 cocos2dx的引擎。感觉引擎能紧跟c++11标准更新很牛逼。。