您的位置:首页 > Web前端 > JavaScript

Jsoncpp库的一个bug

2015-06-05 15:04 609 查看
Jsoncpp有个bug

定义全局对象Value并赋值,类似下面这样,在程序退出的时候会崩溃。
Value s_test;

int WINAPI WinMain(HINSTANCE s, HINSTANCE p, char * cmd,int show)
{
s_test["aaa"] = 1;
}


原因是这里,在全局变量析构之前,这个静态变量已经析构了。

static ValueAllocator *&valueAllocator()
{
static DefaultValueAllocator defaultAllocator;
static ValueAllocator *valueAllocator = &defaultAllocator;
return valueAllocator;
}


改成这样就ok了。

static ValueAllocator *&valueAllocator()
{
static DefaultValueAllocator *defaultAllocator = NULL;
if (defaultAllocator == NULL)
{
defaultAllocator = new DefaultValueAllocator;
}
static ValueAllocator *valueAllocator = defaultAllocator;
return valueAllocator;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: