commit
37c7afab75
|
@ -312,21 +312,20 @@ void *pvPortRealloc( void *pv, size_t xWantedSize )
|
|||
{
|
||||
void *pvReturn = NULL;
|
||||
|
||||
if (xWantedSize == 0)
|
||||
{
|
||||
if (pv)
|
||||
vPortFree(pv);
|
||||
}
|
||||
else if (pv)
|
||||
{
|
||||
BlockLink_t *pxLink = (BlockLink_t *)((char*)pv - xHeapStructSize);
|
||||
if(pxLink->xBlockSize & xBlockAllocatedBit)
|
||||
{
|
||||
uint32_t blockSize = (pxLink->xBlockSize & ~xBlockAllocatedBit);
|
||||
blockSize -= xHeapStructSize;
|
||||
pvReturn = pvPortMalloc(xWantedSize);
|
||||
if(pvReturn)
|
||||
{
|
||||
memcpy(pvReturn, pv, blockSize);
|
||||
memcpy(pvReturn, pv, xWantedSize);
|
||||
vPortFree(pv);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
pvReturn = pvPortMalloc(xWantedSize);
|
||||
}
|
||||
|
|
|
@ -321,21 +321,20 @@ void *pvPortRealloc( void *pv, size_t xWantedSize )
|
|||
{
|
||||
void *pvReturn = NULL;
|
||||
|
||||
if (xWantedSize == 0)
|
||||
{
|
||||
if (pv)
|
||||
vPortFree(pv);
|
||||
}
|
||||
else if (pv)
|
||||
{
|
||||
BlockLink_t *pxLink = (BlockLink_t *)((char*)pv - uxHeapStructSize);
|
||||
if(pxLink->xBlockSize & xBlockAllocatedBit)
|
||||
{
|
||||
uint32_t blockSize = (pxLink->xBlockSize & ~xBlockAllocatedBit);
|
||||
blockSize -= uxHeapStructSize;
|
||||
pvReturn = pvPortMalloc(xWantedSize);
|
||||
if(pvReturn)
|
||||
{
|
||||
memcpy(pvReturn, pv, blockSize);
|
||||
memcpy(pvReturn, pv, xWantedSize);
|
||||
vPortFree(pv);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
pvReturn = pvPortMalloc(xWantedSize);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue