@@ -91,6 +91,15 @@ bool CAIApi_Chat::AIApi_Chat_Create(XNETHANDLE* pxhToken, LPCXSTR lpszAPIUrl, LP
9191 AIApi_dwErrorCode = ERROR_XENGINE_MODULE_AIAPI_CHAT_MALLOC;
9292 return false ;
9393 }
94+ pSt_AIClient->ptszMSGBuffer = (XCHAR*)malloc (XENGINE_MEMORY_SIZE_MAX);
95+ if (NULL == pSt_AIClient->ptszMSGBuffer )
96+ {
97+ AIApi_IsErrorOccur = true ;
98+ AIApi_dwErrorCode = ERROR_XENGINE_MODULE_AIAPI_CHAT_MALLOC;
99+ return false ;
100+ }
101+ memset (pSt_AIClient->ptszMSGBuffer , ' \0 ' , XENGINE_MEMORY_SIZE_MAX);
102+
94103 if (!APIClient_Http_Create (&pSt_AIClient->xhToken , AIApi_Chat_CBRecv, pSt_AIClient))
95104 {
96105 AIApi_IsErrorOccur = true ;
@@ -489,5 +498,11 @@ void CAIApi_Chat::AIApi_Chat_CBRecv(XNETHANDLE xhToken, XPVOID lpszMsgBuffer, in
489498 }
490499 }
491500
492- pClass_This->AIApi_Chat_Parse (pSt_AIClient, (LPCXSTR)lpszMsgBuffer + nPos, nMsgLen - nPos, bSSEReply);
501+ memcpy (pSt_AIClient->ptszMSGBuffer + pSt_AIClient->nMSGLen , lpszMsgBuffer, nMsgLen);
502+ pSt_AIClient->nMSGLen += nMsgLen;
503+ if (pClass_This->AIApi_Chat_Parse (pSt_AIClient, (LPCXSTR)pSt_AIClient->ptszMSGBuffer + nPos, pSt_AIClient->nMSGLen - nPos, bSSEReply))
504+ {
505+ memset (pSt_AIClient->ptszMSGBuffer , ' \0 ' , XENGINE_MEMORY_SIZE_MAX);
506+ pSt_AIClient->nMSGLen = 0 ;
507+ }
493508}
0 commit comments