rendered paste body
Initialize the queue: 1024 bytes
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1024
Allocate 12 bytes
Resize ->m_queue[0]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| |
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1012 1024
Add a block at ->m_queue[1]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|AAAA|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1012 ^ 1024
|-mem_queue->m_queue[1]
Allocate 4 bytes
Resize ->m_queue[1]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| |AAAA|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1008 ^ 1024
|-mem_queue->m_queue[1]
Add a block at ->m_queue[2]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|BB|AAAA|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1008 ^ ^ 1024
| |-mem_queue->m_queue[1]
|-mem_queue->m_queue[2]
Free 12 bytes
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|BB| |
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1008 ^ 1024
|
|-mem_queue->m_queue[2]
Shift ->m_queue[2] to the end and label as ->m_queue[1]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| |BB|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1008 ^ 1024
|
|-mem_queue->m_queue[2]
Add the 12 bytes back to ->m_queue[0]
--------------------------------------------------------------------
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|BB|
--------------------------------------------------------------------
0 mem_queue->m_queue[0] 1020 ^ 1024
|
|-mem_queue->m_queue[2]