@@ -95,6 +95,24 @@ void *XPool_Alloc(xpool_t *pPool, size_t nSize)
9595 return pRet ;
9696}
9797
98+ void * XPool_Realloc (xpool_t * pPool , void * pData , size_t nDataSize , size_t nNewSize )
99+ {
100+ XASSERT_RET (nNewSize , NULL );
101+ XASSERT_RET (pPool , NULL );
102+
103+ void * pNew = XPool_Alloc (pPool , nNewSize );
104+ if (pNew == NULL ) return NULL ;
105+
106+ if (pData != NULL && nDataSize )
107+ {
108+ size_t nCopySize = XSTD_MIN (nDataSize , nNewSize );
109+ memcpy (pNew , pData , nCopySize );
110+ XPool_Free (pPool , pData , nDataSize );
111+ }
112+
113+ return pNew ;
114+ }
115+
98116void XPool_Free (xpool_t * pPool , void * pData , size_t nSize )
99117{
100118 XASSERT_VOID_RET (pData );
@@ -147,18 +165,7 @@ void* xrealloc(xpool_t *pPool, void *pData, size_t nDataSize, size_t nNewSize)
147165{
148166 XASSERT_RET (nNewSize , NULL );
149167 if (!pPool ) return realloc (pData , nNewSize );
150-
151- void * pNew = XPool_Alloc (pPool , nNewSize );
152- if (pNew == NULL ) return NULL ;
153-
154- if (pData != NULL && nDataSize )
155- {
156- size_t nCopySize = XSTD_MIN (nDataSize , nNewSize );
157- memcpy (pNew , pData , nCopySize );
158- xfreen (pPool , pData , nDataSize );
159- }
160-
161- return pNew ;
168+ return XPool_Realloc (pPool , pData , nDataSize , nNewSize );
162169}
163170
164171void xfree (xpool_t * pPool , void * pData )
0 commit comments