Skip to content

Commit fe319cf

Browse files
committed
fixed:sometime memory leak when read configure file
1 parent 4418bad commit fe319cf

File tree

2 files changed

+7
-26
lines changed

2 files changed

+7
-26
lines changed

XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,12 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
6161
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE;
6262
return false;
6363
}
64-
int nCount = 0;
65-
XCHAR tszMsgBuffer[4096];
66-
while (1)
67-
{
68-
int nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File);
69-
if (nRet <= 0)
70-
{
71-
break;
72-
}
73-
nCount += nRet;
74-
}
64+
XCHAR tszMsgBuffer[8192];
65+
int nRet = fread(tszMsgBuffer, 1, sizeof(tszMsgBuffer), pSt_File);
7566
fclose(pSt_File);
7667
//开始解析配置文件
7768
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_JsonBuilder.newCharReader());
78-
if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError))
69+
if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nRet, &st_JsonRoot, &st_JsonError))
7970
{
8071
Config_IsErrorOccur = true;
8172
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE;
@@ -204,21 +195,12 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_Version(LPCXSTR lpszConfigFile,
204195
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE;
205196
return false;
206197
}
207-
int nCount = 0;
208-
XCHAR tszMsgBuffer[4096];
209-
while (1)
210-
{
211-
int nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File);
212-
if (nRet <= 0)
213-
{
214-
break;
215-
}
216-
nCount += nRet;
217-
}
198+
XCHAR tszMsgBuffer[8192];
199+
int nRet = fread(tszMsgBuffer, 1, sizeof(tszMsgBuffer), pSt_File);
218200
fclose(pSt_File);
219201
//开始解析配置文件
220202
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_JsonBuilder.newCharReader());
221-
if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError))
203+
if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nRet, &st_JsonRoot, &st_JsonError))
222204
{
223205
Config_IsErrorOccur = true;
224206
Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE;

XEngine_Source/XEngine_ServiceApp/XEngine_Configure.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ bool XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pS
5555
}
5656
else if (0 == _tcsxicmp("-v", argv[i]))
5757
{
58-
string m_StrVersion = st_ServiceConfig.st_XVer.pStl_ListVer->front();
59-
printf("Version:%s\n", m_StrVersion.c_str());
58+
printf("Version:%s\n", st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str());
6059
return false;
6160
}
6261
else if (0 == _tcsxicmp("-t", argv[i]))

0 commit comments

Comments
 (0)