Skip to content

Commit fc36b94

Browse files
committed
Support case where XREALLOC doesn't exist
1 parent 6014544 commit fc36b94

1 file changed

Lines changed: 25 additions & 6 deletions

File tree

src/internal.c

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5803,14 +5803,33 @@ int WP11_Session_IsOpInitialized(WP11_Session* session, int init)
58035803

58045804
int WP11_Session_UpdateData(WP11_Session *session, byte *data, word32 dataLen)
58055805
{
5806-
byte* tmp = (byte*)XREALLOC(session->data, session->dataSz + dataLen, NULL,
5806+
int ret = 0;
5807+
byte* tmp;
5808+
5809+
#ifdef XREALLOC
5810+
tmp = (byte*)XREALLOC(session->data, session->dataSz + dataLen, NULL,
58075811
DYNAMIC_TYPE_TMP_BUFFER);
58085812
if (tmp == NULL)
5809-
return MEMORY_E;
5810-
session->data = tmp;
5811-
XMEMCPY(session->data + session->dataSz, data, dataLen);
5812-
session->dataSz += dataLen;
5813-
return 0;
5813+
ret = MEMORY_E;
5814+
#else
5815+
tmp = (byte*)XMALLOC(session->dataSz + dataLen, NULL,
5816+
DYNAMIC_TYPE_TMP_BUFFER);
5817+
if (tmp == NULL)
5818+
ret = MEMORY_E;
5819+
if (ret == 0) {
5820+
if (session->data != NULL)
5821+
XMEMCPY(tmp, session->data, session->dataSz);
5822+
XFREE(session->data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
5823+
}
5824+
#endif /* !XREALLOC */
5825+
5826+
if (ret == 0) {
5827+
session->data = tmp;
5828+
XMEMCPY(session->data + session->dataSz, data, dataLen);
5829+
session->dataSz += dataLen;
5830+
}
5831+
5832+
return ret;
58145833
}
58155834

58165835
void WP11_Session_GetData(WP11_Session *session, byte** data, word32* dataLen)

0 commit comments

Comments
 (0)