Improve the speed of split memory. (#738)
Co-authored-by: moral-hao <405197809@qq.com>
Co-authored-by: Nikhil Kamath <110539926+amazonKamath@users.noreply.github.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
diff --git a/portable/ARMv8M/secure/heap/secure_heap.c b/portable/ARMv8M/secure/heap/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/ARMv8M/secure/heap/secure_heap.c
+++ b/portable/ARMv8M/secure/heap/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/GCC/ARM_CM23/secure/secure_heap.c b/portable/GCC/ARM_CM23/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/GCC/ARM_CM23/secure/secure_heap.c
+++ b/portable/GCC/ARM_CM23/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/GCC/ARM_CM33/secure/secure_heap.c b/portable/GCC/ARM_CM33/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/GCC/ARM_CM33/secure/secure_heap.c
+++ b/portable/GCC/ARM_CM33/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/GCC/ARM_CM35P/secure/secure_heap.c b/portable/GCC/ARM_CM35P/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/GCC/ARM_CM35P/secure/secure_heap.c
+++ b/portable/GCC/ARM_CM35P/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/GCC/ARM_CM55/secure/secure_heap.c b/portable/GCC/ARM_CM55/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/GCC/ARM_CM55/secure/secure_heap.c
+++ b/portable/GCC/ARM_CM55/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/GCC/ARM_CM85/secure/secure_heap.c b/portable/GCC/ARM_CM85/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/GCC/ARM_CM85/secure/secure_heap.c
+++ b/portable/GCC/ARM_CM85/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/IAR/ARM_CM23/secure/secure_heap.c b/portable/IAR/ARM_CM23/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/IAR/ARM_CM23/secure/secure_heap.c
+++ b/portable/IAR/ARM_CM23/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/IAR/ARM_CM33/secure/secure_heap.c b/portable/IAR/ARM_CM33/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/IAR/ARM_CM33/secure/secure_heap.c
+++ b/portable/IAR/ARM_CM33/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/IAR/ARM_CM35P/secure/secure_heap.c b/portable/IAR/ARM_CM35P/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/IAR/ARM_CM35P/secure/secure_heap.c
+++ b/portable/IAR/ARM_CM35P/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/IAR/ARM_CM55/secure/secure_heap.c b/portable/IAR/ARM_CM55/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/IAR/ARM_CM55/secure/secure_heap.c
+++ b/portable/IAR/ARM_CM55/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/IAR/ARM_CM85/secure/secure_heap.c b/portable/IAR/ARM_CM85/secure/secure_heap.c
index 157fdbf..990125a 100644
--- a/portable/IAR/ARM_CM85/secure/secure_heap.c
+++ b/portable/IAR/ARM_CM85/secure/secure_heap.c
@@ -334,7 +334,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/MemMang/heap_2.c b/portable/MemMang/heap_2.c
index 67f1c3a..5c3cb55 100644
--- a/portable/MemMang/heap_2.c
+++ b/portable/MemMang/heap_2.c
@@ -230,7 +230,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
xFreeBytesRemaining -= pxBlock->xBlockSize;
diff --git a/portable/MemMang/heap_4.c b/portable/MemMang/heap_4.c
index c82933e..63eb94d 100644
--- a/portable/MemMang/heap_4.c
+++ b/portable/MemMang/heap_4.c
@@ -243,7 +243,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( pxNewBlockLink );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{
diff --git a/portable/MemMang/heap_5.c b/portable/MemMang/heap_5.c
index 24a7ada..198bc61 100644
--- a/portable/MemMang/heap_5.c
+++ b/portable/MemMang/heap_5.c
@@ -253,7 +253,8 @@
pxBlock->xBlockSize = xWantedSize;
/* Insert the new block into the list of free blocks. */
- prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );
+ pxNewBlockLink->pxNextFreeBlock = pxPreviousBlock->pxNextFreeBlock;
+ pxPreviousBlock->pxNextFreeBlock = pxNewBlockLink;
}
else
{