自动释放池倾倒时崩溃

每两帧调用一次,结果我发现程序有时会在自动释放池倾倒时崩溃,崩溃时自动释放池正在释放一个CCString对象,这个CCString的内容是图像文件完全路径名,因为堆释放错误而崩溃。崩溃有时发生在次函数被调用很多次后,有时只调用了几次。
我的开发环境是VS2012, cocos2d-2.0-x-2.0.3.
void setSpriteFrame( cocos2d::CCSprite * sprite, const std::string& file )
{
cocos2d::CCImage * image = new cocos2d::CCImage;
bool t = image->initWithImageFile( file.c_str() );
assert( t );
cocos2d::CCTexture2D * texture = new cocos2d::CCTexture2D;
t = texture->initWithImage( image );
assert( t );
image->release();
cocos2d::CCRect rect = cocos2d::CCRectZero;
rect.size = texture->getContentSize();
sprite->setTexture( texture );
sprite->setTextureRect( rect );
texture->release();
}

是不是在其他线程用到了autorelease. 例如在其他线程里面用到了fullPathFromRelativePath`

我没建多线程,就是基于VS模板建的一个简单的Demo。

有时运行到sprite->setTexture( texture )会崩溃。
因为
void CCSprite::setTexture(CCTexture2D *texture)
{
if (!m_pobBatchNode && m_pobTexture != texture)
{
。。。。。。。。。。
CC_SAFE_RELEASE(m_pobTexture); // 这句崩溃
。。。。。。。。
}
}